<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Insanet.org</title>
	<atom:link href="http://www.insanet.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.insanet.org</link>
	<description>Insane hardware hacking projects</description>
	<pubDate>Mon, 01 Dec 2008 19:33:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Looking for a songtitle&#8230;</title>
		<link>http://www.insanet.org/?p=16</link>
		<comments>http://www.insanet.org/?p=16#comments</comments>
		<pubDate>Sat, 23 Aug 2008 15:52:20 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Fun]]></category>

		<category><![CDATA[elevator]]></category>

		<category><![CDATA[music]]></category>

		<category><![CDATA[Song title]]></category>

		<category><![CDATA[waiting room]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=16</guid>
		<description><![CDATA[I&#8217;m looking for a song that sounds like pa pa pa pa pa pa ra pa pa pa pa .. i guess it&#8217;s like a waiting room song.. or something similar.. i heard it thousands of times but i&#8217;ve never knew its title  

]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">I&#8217;m looking for a song that sounds like pa pa pa pa pa pa ra pa pa pa pa .. i guess it&#8217;s like a waiting room song.. or something similar.. i heard it thousands of times but i&#8217;ve never knew its title <img src='http://www.insanet.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/saALonDa61o&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/saALonDa61o&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=16</wfw:commentRss>
		</item>
		<item>
		<title>The day the routers died</title>
		<link>http://www.insanet.org/?p=15</link>
		<comments>http://www.insanet.org/?p=15#comments</comments>
		<pubDate>Fri, 16 May 2008 13:24:09 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Fun]]></category>

		<category><![CDATA[IPv4]]></category>

		<category><![CDATA[IPv6]]></category>

		<category><![CDATA[Ripe55]]></category>

		<category><![CDATA[Routers]]></category>

		<category><![CDATA[Song]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=15</guid>
		<description><![CDATA[Su segnalazione di Inedia:

The Day The Routers Died&#8230; a song performed by the secret-wg in the closing plenary of the RIPE 55 conferenceIl Testo:
a long long time ago
i can still remember
when my laptop could connect elsewhere
and i tell you all there was a day
the network card i threw away
had a purpose - and worked for [...]]]></description>
			<content:encoded><![CDATA[<p>Su segnalazione di Inedia:</p>
<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/_y36fG2Oba0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/_y36fG2Oba0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>The Day The Routers Died&#8230; a song performed by the secret-wg in the closing plenary of the RIPE 55 conference<span id="more-15"></span>Il Testo:</p>
<blockquote><p>a long long time ago<br />
i can still remember<br />
when my laptop could connect elsewhere</p>
<p>and i tell you all there was a day<br />
the network card i threw away<br />
had a purpose - and worked for you and me&#8230;.</p>
<p>But 18 years completely wasted<br />
with each address we&#8217;ve aggregated<br />
the tables overflowing<br />
the traffic just stopped flowing&#8230;.</p>
<p>And now we&#8217;re bearing all the scars<br />
and all my traceroutes showing stars&#8230;<br />
the packets would travel faster in cars&#8230;<br />
the day&#8230;.the routers died</p>
<p>Chorus (ALL!!!!!)</p>
<p>So bye bye, folks at RIPE 55<br />
Be persuaded to upgrade it or your network will die<br />
IPv6 just makes me let out a sigh<br />
But I spose we&#8217;d better give it a try<br />
I suppose we&#8217;d better give it a try</p>
<p>Now did you write an RFC<br />
That dictated how we all should be<br />
Did we listen like we should that day</p>
<p>Now were you back at RIPE fifty-four<br />
Where we heard the same things months before<br />
And the people knew they&#8217;d have to change their ways&#8230;.</p>
<p>And we - knew that all the ISPs<br />
Could be - future proof for centuries</p>
<p>But that was then not now<br />
Spent too much time playing WoW</p>
<p>ooh there was time we sat on IRC<br />
Making jokes on how this day would be<br />
Now there&#8217;s no more use for TCP<br />
The day the routers died&#8230;</p>
<p>Chorus (chime in now)</p>
<p>So bye bye, folks at RIPE 55<br />
Be persuaded to upgrade it or your network will die<br />
IPv6 just makes me let out a sigh<br />
But I spose we&#8217;d better give it a try<br />
I suppose we&#8217;d better give it a try</p>
<p>I remember those old days I mourn<br />
Sitting in my room, downloading porn<br />
Yeah that&#8217;s how it used to be&#8230;.</p>
<p>When the packets flowed from A to B<br />
via routers that could talk IP<br />
There was data..that could be exchanged between you and me&#8230;.</p>
<p>Oh but - I could see you all ignore<br />
The fact - we&#8217;d fill up IPv4</p>
<p>But we all lost the nerve<br />
And we got what we deserved!</p>
<p>And while&#8230;we threw our network kit away<br />
And wished we&#8217;d heard the things they say<br />
Put all our lives in disarray</p>
<p>The day&#8230;the routers died&#8230;</p>
<p>Chorus (those silent will be shot)</p>
<p>So bye bye, folks at RIPE 55<br />
Be persuaded to upgrade it or your network will die<br />
IPv6 just makes me let out a sigh<br />
But I spose we&#8217;d better give it a try<br />
I suppose we&#8217;d better give it a try</p>
<p>Saw a man with whom I used to peer<br />
Asked him to rescue my career<br />
He just sighed and turned away..</p>
<p>I went down to the net cafe<br />
that I used to visit everyday<br />
But the man there said I might as well just leave&#8230;</p>
<p>And now we&#8217;ve all lost our purpose..<br />
my cisco shares completely worthless&#8230;</p>
<p>No future meetings for me<br />
At the Hotel Krasnapolsky</p>
<p>and the men that make us push and push<br />
Like Geoff Huston and Randy Bush<br />
Should&#8217;ve listened to what they told us&#8230;.<br />
The day&#8230;the routers&#8230;.died</p>
<p>Chorus (time to lose your voice)</p>
<p>So bye bye, folks at RIPE 55<br />
Be persuaded to upgrade it or your network will die<br />
IPv6 just makes me let out a sigh<br />
But I spose we&#8217;d better give it a try<br />
I suppose we&#8217;d better give it a try</p></blockquote>
<p>Words and performance by Gary Feldman</p>
<p>The RIPE Community Resolution on IPv4 Depletion and Deployment of IPv6 can be found here</p>
<p>http://www.ripe.net/news/community-st&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=15</wfw:commentRss>
		</item>
		<item>
		<title>Cattura video analogica su Linux - BTTV</title>
		<link>http://www.insanet.org/?p=11</link>
		<comments>http://www.insanet.org/?p=11#comments</comments>
		<pubDate>Mon, 17 Mar 2008 11:46:50 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Dvr]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Streaming]]></category>

		<category><![CDATA[Videosorveglianza]]></category>

		<category><![CDATA[bttv]]></category>

		<category><![CDATA[cctv]]></category>

		<category><![CDATA[conexant]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=11</guid>
		<description><![CDATA[Il modo più economico per catturare una sorgente video analogica su linux è senz&#8217;altro quello di dotarsi di una scheda di acquisizione analogica che monti un chipset Conexant, solitamente si tratta dei chip &#8220;Bt8&#215;8&#8243; ovvero Bt848,  Bt848A, Bt849, Bt878 eBt879 dove la sigla Bt sta per Brooktree, l&#8217;azienda ideatrice di questo chipset che ora [...]]]></description>
			<content:encoded><![CDATA[<p>Il modo più economico per catturare una sorgente video analogica su linux è senz&#8217;altro quello di dotarsi di una scheda di acquisizione analogica che monti un chipset Conexant, solitamente si tratta dei chip &#8220;Bt8&#215;8&#8243; ovvero Bt848,  Bt848A, Bt849, Bt878 eBt879 dove la sigla Bt sta per Brooktree, l&#8217;azienda ideatrice di questo chipset che ora è stata inglobata dalla Conexant. Oltre a qeusti modelli &#8220;storici&#8221; presenti sul mercato da molti anni (i primi esemplari di queste schede comparvero nei primi anni 90 e avevano uno slot ISA) in tempi più recenti è stato introdotto da conexant il nuovo chipset conexant 2388x.</p>
<p><span id="more-11"></span> Queste schede sono supportate da linux grazie alla famiglia di driver del progetto V4L ed in particolare dai driver BTTV, sigla con la quale si identificano spesso questo tipo di schede che ultimamente spopolano su ebay e in diversi store di elettronica e videosorveglianza, a prezzi spesso esagerati&#8230;</p>
<p>Spesso infatti nelle caratteristiche tecniche di queste schede si leggono frasi tipo &#8220;4 ingressi video real time 30 fps&#8221; e vengono vendute con prezzo esorbitanti, approfittando forse  dell&#8217;interesse che ultimamente sta suscitando la videosorveglianza tra i consumatori finali, grazie anche alla comparsa sul mercato di videocamere cinesi cctv a basso costo.</p>
<p>Per non fare confusione e non prendere &#8220;inculate&#8221; occorre però fare chiarezza e distinguere i diversi tipi di schede in base alle loro caratteristiche reali.</p>
<p>La differenza è data soprattutto dal numero di chip e ingressi presenti sulla scheda.</p>
<p>Per ogni chipset presente sulla scheda, il sistema individuerà un dispositivo di cattura video, tipicamente /dev/video0, /dev/video1, ecc.. Ognuno di questi chipset (dispositivi) potrà gestire più ingressi video..</p>
<p><strong>Schede con un unico chipset -  30 fps max.<br />
</strong></p>
<p>Questo tipo di scheda monta un solo chipset con 4 ingressi:</p>
<p style="text-align: center"><img src="/images/bttv_4_1.jpg" align="absmiddle" height="378" width="520" /></p>
<p style="text-align: center">&nbsp;</p>
<p>Un chip della famiglia Bt8&#215;8 è in grado di convertire una sorgente video da analogica a digitale al &#8220;ritmo&#8221; di 30 frame al secondo, questo significa che se usassimo i 4 ingressi contemporaneamente potremmo ottenere al max 30:4 ovvero circa 7,25 frame al secondo.</p>
<p>In questo caso di parla di &#8220;un dispositivo con 4 porte (canali)&#8221; ovvero di un unico chip condiviso fra 4 ingressi.  Questi ingressi sono contraddistinti con sigle diverse a seconda del tipo di scheda, solitamente sono indicati con composite0&#8230;composite3 oppure tuner, s-video, composite1, composite2 a seconda di come è strutturata la scheda di acquisizione.</p>
<p>Il canale che si desidera utilizzare per l&#8217;acquisizione va specificato nelle configurazioni del programma utilizzato, ad esempio lanciando xawtv con il comando relativo può essere impostato direttamente dal menù grafico, ovviamente specificando il dispositivo da utilizzare:</p>
<blockquote><p><em>xawtv -device /dev/video0</em></p></blockquote>
<p style="text-align: center"><img src="/images/xawtv_bttv.jpg" height="378" width="505" /></p>
<p>Altri programmi, come zoneminder o motion, permettono di utilizzare più ingressi contemporaneamente, in &#8220;round robin&#8221;, cioè consentendo al chip di fare lo switch tra i diversi ingressi visualizzandone i frame video per un totale di 30 fps complessivi come spiegato prima.</p>
<p>Una scheda di questo tipo si può trovare su ebay intorno ai 25-30 euro, e viene indicata come scheda 4 ch. 30 fps &#8220;real time&#8221; anche se la dicitura può trarre in inganno: va sempre tenuto presente che con un solo chipset è possibile visualizzare un solo ingresso alla volta in real time (30 fps).  Scorrendo le caratteristiche tecniche spesso troverete infatti la dicitura &#8220;30 fps max&#8221; o &#8220;30 fps tot.&#8221;.</p>
<p>A prezzi più alti non è consigliabile acquistare la scheda.</p>
<p>Se si vogliono ottenere performance migliori con più ingressi è consigliabile ricorrere a schede con più chipset.</p>
<p><strong>Schede con un più chipset -  120-240 fps max.</strong></p>
<p>Le schede di videosorveglianza professionali montano un chip per ogni ingresso video, in questo modo riescono ad ottenere 30 fps (real time) per ogni ingresso video alla massima risoluzione. Solitamente hanno 4 o 8 ingressi, i prezzi si aggirano sui 50-60 euro e 90-100 euro rispettivamente.</p>
<p><strong>Scheda con 4 ingressi e 4 chip</strong>: 30 fps per ogni ingresso video - real time</p>
<p style="text-align: center"><img src="/images/bttv_4_4.jpg" height="311" width="511" /></p>
<p><strong>Scheda con 4-8 ingressi e 4 chip</strong>: se vengono usati più di 4 ingressi, alcuni chip dovranno gestire 2 ingressi video e quindi il loro framerate si dimezzerà (15 fps).</p>
<p style="text-align: center">&nbsp;</p>
<p style="text-align: center"><img src="/images/bttv_8_4.jpg" /></p>
<p style="text-align: center">&nbsp;</p>
<p><strong>  Scheda con 8 ingressi e 8 chip</strong>: 30 fps per ogni ingresso video - real time.</p>
<p style="text-align: center"><img src="/images/bttv_8_8.jpg" height="322" width="524" /></p>
<p><strong>  Scheda con 8-16 ingressi e 8 chip</strong>: tramite un adattatore possono essere usati più di 4 ingressi, alcuni chip dovranno gestire quindi 2 ingressi video e il loro framerate si dimezzerà (15 fps).</p>
<p style="text-align: center"><img src="/images/bttv_16_8.jpg" /></p>
<p> In genere le schede con 4 o più chipset hanno un un connettore tipo seriale a cui collegare un adattatore per ingressi video bnc o rca. Se la scheda lo supporta, può essere aggiunta l&#8217;espansione per aumentare il numero di ingressi tramite un &#8220;bracket&#8221; pci:</p>
<p style="text-align: center"><img src="/images/accessory.jpg" height="252" width="492" /></p>
<p>Nel caso ad esempio si utilizzino 8 ingressi video con una scheda con 4 chipset, varrà lo stesso discorso fato per il caso della prima scheda presa in esame, ovvero si avranno nel sistema 4 dispositivi di cattura indicati con /dev/video0,&#8230;/dev/video3  e ognuno di questi avrà due canali a disposizione, ad esempio composite0 e composite1, da usare in round robin o singolarmente specificandolo nel file di configurazione del dispositivo.</p>
<p>Ultimamente le schede DVR con chipset conexant montano il modello Fusion 878A che pare sia l&#8217;evoluzione diretta del modello bt878.</p>
<p style="text-align: center"><img src="/images/fusion878a.jpg" height="338" width="452" /></p>
<p align="left">Alcune di queste ultime schede presentano dei problemi con linux, pare che ciò sia dovuto alla presenza di un chip multiplexer che coordina il lavoro degli altri chip video. A seconda della casa produttrice questo chip può essere di versioni diverse e non compatibile coi driver bttv di linux.</p>
<p align="left">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=11</wfw:commentRss>
		</item>
		<item>
		<title>Svegliarsi con Linux</title>
		<link>http://www.insanet.org/?p=9</link>
		<comments>http://www.insanet.org/?p=9#comments</comments>
		<pubDate>Wed, 23 Jan 2008 10:25:00 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Vlc]]></category>

		<category><![CDATA[Cron]]></category>

		<category><![CDATA[Scheduling]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=9</guid>
		<description><![CDATA[&#160;
Mi sono accorto che a volte una sveglia sola non basta, ecco allora che il pinguino mi viene incontro.. una volta acquisito il know-how per gestire cron è facile impostare un crontab per eseguire un file audio o video ogni mattina alla stessa ora..

&#8220;..ore 9 e 30 grande varietà religioso..&#8221; 
Supponendo di volersi svegliare (forse [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center">&nbsp;</p>
<p align="left">Mi sono accorto che a volte una sveglia sola non basta, ecco allora che il pinguino mi viene incontro.. una volta acquisito il know-how per gestire <a href="http://www.insanet.org/?p=4">cron</a> è facile impostare un crontab per eseguire un file audio o video ogni mattina alla stessa ora..</p>
<p align="center"><img src="http://www.dvdtimes.co.uk/images/fullmetaljacket1.jpg" alt="..ore 9 e 30 grande varietà religioso.." height="298" hspace="5" vspace="5" width="400" /><br />
<em>&#8220;..ore 9 e 30 grande varietà religioso..&#8221; </em></p>
<p><span id="more-9"></span>Supponendo di volersi svegliare (forse sarebbe meglio scrivere <em><u>doversi</u> svegliare</em>) alle 7:00 dal Lunedì al Venerdì  al suono di un mp3 oppure di una radio online, si potrebbe impostare un cronjob in questo modo:</p>
<blockquote><p>00 07 * * 1-5 /usr/bin/vlc /home/muse/musica/maracaibo.mp3 -d<br />
05 07 * * 1-5 killall vlc</p></blockquote>
<p>Diversamente da altri programmi (quali totem o kaffeine ad esempio), per quanto riguarda i file audio, vlc non fa problemi nel caso non venga specificato il display di output oppure non venga eseguito in background, in questo caso l&#8217;applicazione avvierà comunque la riproduzione del file.. Nel caso si voglia utilizzare un file video invece occorre specificare l&#8217;uscita video sul quale visualizzarlo.. basta curiosare nel file xorg.conf e vedere a cosa corrisponde</p>
<blockquote><p>&#8230;</p>
<p>Section &#8220;ServerLayout&#8221;<br />
Identifier     &#8220;Default Layout&#8221;<br />
Screen         &#8220;Default Screen&#8221; 0 0</p>
<p>&#8230;</p>
<p>Section &#8220;Screen&#8221;<br />
Identifier     &#8220;Default Screen&#8221;<br />
Device         &#8220;nVidia Corporation NV18 [GeForce4 MX 4000]&#8221;<br />
Monitor        &#8220;Flatron795FT&#8221;<br />
DefaultDepth    16<br />
Option         &#8220;TwinView&#8221;<br />
#Option         &#8220;TVOutFormat&#8221; &#8220;COMPOSITE&#8221;<br />
Option         &#8220;TVStandard&#8221; &#8220;PAL-G&#8221;<br />
&#8230;</p></blockquote>
<p>Nel mio caso l&#8217;uscita è una sola in quanto ho il server collegato all&#8217;uscita tv impostata come Twin view ovvero come replica dell&#8217;immagine sul monitor. Il default screen è quindi identificato dai numeri 0 0 , quindi il parametro da passare sarà:</p>
<blockquote><p>kaffeine &#8211;display=0:0 video.avi</p></blockquote>
<p>Nel caso di Vlc per impostare il display corretto la soluzione più immediata è quella di impostare la variabile d&#8217;ambiente DISPLAY corretta direttamente nello comando, ad esempio:</p>
<blockquote><p>DISPLAY:=0.0 vlc video.avi</p></blockquote>
<p>Per impostare definitivamente il display come default per i comandi di cron basta specificare la variabile  nel file crontab relativo all&#8217;utente con cui si è loggati:</p>
<blockquote><p>muse@server:$ crontab -l<br />
# m h  dom mon dow   command<br />
DISPLAY=:0.0<br />
25 22 * * 1 /home/muse/deejay.sh<br />
03 00 * * 2 killall vlc</p>
<p>00 07 * * 1-5 /usr/bin/vlc /home/muse/video/fullmetaljacket_hartman.avi<br />
00 11 * * 1-5 killall vlc</p></blockquote>
<p>Ultima cosa da ricordare: lasciare le casse accese &#8216;^^</p>
<p>That&#8217;s All Folks !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=9</wfw:commentRss>
		</item>
		<item>
		<title>Operazione pianificate su Linux - at</title>
		<link>http://www.insanet.org/?p=8</link>
		<comments>http://www.insanet.org/?p=8#comments</comments>
		<pubDate>Fri, 18 Jan 2008 10:17:04 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Scheduling]]></category>

		<category><![CDATA[Vlc]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=8</guid>
		<description><![CDATA[Il comando at, a differenza di cron, serve ad eseguire un&#8217;operazione un&#8217;unica volta, nel giorno e all&#8217;orario stabilito.

Sintassi del comando at

Digitando il comando at seguito dall&#8217;orario o dalla data ci si trova di fronte ad un prompt a cui passare i comandi che si vogliono eseguire :
muse@workstation:$ at 18:30
warning: commands will be executed using /bin/sh
at&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Il comando at, a differenza di <a href="http://www.insanet.org/?p=4">cron</a>, serve ad eseguire un&#8217;operazione un&#8217;unica volta, nel giorno e all&#8217;orario stabilito.</p>
<p><span id="more-8"></span></p>
<h4>Sintassi del comando at<strong><br />
</strong></h4>
<p>Digitando il comando at seguito dall&#8217;orario o dalla data ci si trova di fronte ad un prompt a cui passare i comandi che si vogliono eseguire :</p>
<blockquote><p>muse@workstation:$ at 18:30</p>
<p>warning: commands will be executed using /bin/sh<br />
at&gt; echo &#8220;inizia registrazione radio deejay&#8221;</p>
<p>at&gt; <em>vlc mms://live.mediaserver.kataweb.it/radiodeejay –sout file/asf:cordialmente.asf -d</em></p>
<p>at&gt; &lt;EOT&gt;<br />
job 1 at Fri Jan 11 20:30:00 2008</p></blockquote>
<p>Una volta inseriti i comandi da eseguire, si può uscire premendo ctrl+d, ottenendo come risposta &lt;EOT&gt; e una riga contenente i dettagli sul job appena configurato. La lista dei job impostati può essere visualizzata digitando atq:</p>
<blockquote><p>muse@workstation:$ atq</p>
<p>1       Fri Jan 11 22:30:00 2008 a muse</p>
<p>2      Fri Jan 11 23:30:00 2008 a muse</p></blockquote>
<p>Si può poi decidere di rimuovere il job tramite atrm seguito dal numero corrispondente. Ovviamente i risultati di questi cmandi si riferiscono ai job (o tasks) relativi all&#8217;utente con il quale si è loggati.</p>
<p>L&#8217;orario può essere specificato in formato 24h o am-pm, in quest&#8217;ultimo caso va specificato (at 4:00 pm). La data può essere espressa in formato MM/DD/YYYY  oppure YYYY-MM-DD . E&#8217; possibile inoltre indicare il nome del mese (jan, feb, ecc..) e il giorno tramite il numero (1,2..31) e non indicare l&#8217;anno. I seguenti comandi sono equivalenti</p>
<blockquote><p>at 11/21/2008</p>
<p>at 2008-11-21</p>
<p>at nov 21</p></blockquote>
<p>E&#8217; possibile utilizzare l&#8217;operatore + per indicare un orario relativo secondo lo schema</p>
<p>+ &lt;numero&gt; &lt;unità di tempo&gt;<strong> </strong></p>
<p>dove l&#8217;unità di tempo può essere minutes, hours, days o weeks. Alcuni esempi possono essere</p>
<blockquote><p>at 22:30 + 2 days - il comando sarà eseguito fra due giorni alle 22 e 30</p>
<p>at 8 pm +2 hours - il comando viene eseguito alle 10 pm ( si, è stupido ma è un e</p></blockquote>
<p>sempio)</p>
<p>La sintassi di at comprende anche dei parametri &#8220;informali&#8221; con i quali è possibile configurare un job in modo amichevole (^^ che bellu), ad esempio :</p>
<blockquote><p>muse@workstation:$ at teatime</p>
<p>&gt; echo &#8220;è l&#8217;ora del thè&#8221;</p>
<p>at&gt; &lt;EOT&gt;</p></blockquote>
<p>Questo stamperà a schermo &#8220;è l&#8217;ora del thè&#8221; alle 4 del pomeriggio.. i parametri di questo tipo sono:</p>
<blockquote><p>teatime - corrisponde alle 16 (però!.. intelligente eh?)</p>
<p>now - esegue il comando immediatamente</p>
<p>noon - corrisponde alle 12 am</p>
<p>midnight - corrisponde alle 24 o 12 pm</p>
<p>today, tomorrow - ovviamente oggi e domani</p></blockquote>
<p>Alcuni usi tipici di questi parametri possono essere:</p>
<blockquote><p>at now + 3 hours - esegue il comando fra 3 ore</p>
<p>at noon tomorrow - esegue il comando domani alle 12</p></blockquote>
<h4>Opzioni di at.</h4>
<p>Le opzioni consentite da at sono</p>
<blockquote><p>-l : stessa funzione di atq, visualizza la lista dei job</p>
<p>-r &lt;num&gt; : stessa funzione di atrm, rimuove il job &lt;num&gt; (vedi sopra)</p>
<p>-m:  consente di inviare una mail all&#8217;utente per notificarlo sull&#8217;esecuzione del comando e sull&#8217;output eventualmente prodotto</p>
<p>-f: consente di indicare un file contenente i comandi da eseguire.</p></blockquote>
<p>Nel caso venga indicato un file da eseguire, il prompt dei comandi di at non verrà visualizzato:</p>
<blockquote><p>muse@workstation:~$ at 22:30 -f radiodeejay.sh<br />
warning: commands will be executed using /bin/sh<br />
job 2 at Sun Jan 13 22:30:00 2008</p></blockquote>
<h4>Casi particolari</h4>
<p>Se si avvia at indicando un orario già passato, il comando verrà eseguito immediatamente. Stessa cosa accade se il sistema è spento nel momento in cui avrebbe dovuto eseguire un job di at, al riavvio verrà eseguito immediatamente.</p>
<h4>Autorizzazioni</h4>
<p>Il sistema di autorizzazioni per l&#8217;esecuzione dei job per gli utenti del sistema è simile a quello di <a href="http://www.insanet.org/?p=4">Cron</a>, sono presenti infatti due file at.deny e at.allow con la liste degli utenti abilitati oppure no.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=8</wfw:commentRss>
		</item>
		<item>
		<title>Registrare uno stream automaticamente - #2</title>
		<link>http://www.insanet.org/?p=7</link>
		<comments>http://www.insanet.org/?p=7#comments</comments>
		<pubDate>Mon, 07 Jan 2008 19:07:50 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Streaming]]></category>

		<category><![CDATA[Vlc]]></category>

		<category><![CDATA[Cron]]></category>

		<category><![CDATA[Scheduling]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=7</guid>
		<description><![CDATA[Per risolvere il problema riscontrato con il metodo descritto nel precedente post, ho deciso di ricorrere all&#8217;utilizzo dello scheduler di vlc, una funzionalità che permette di far eseguire a vlc una determinata operazione al momento desiderato e di ripeterla periodicamente. Lo scheduler è una delle opzioni offerte da vlm, il &#8220;linguaggio&#8221; di scripting di vlc&#8230;Vlm [...]]]></description>
			<content:encoded><![CDATA[<p>Per risolvere il problema riscontrato con il <a href="http://www.insanet.org/?p=5">metodo descritto nel precedente post</a>, ho deciso di ricorrere all&#8217;utilizzo dello scheduler di vlc, una funzionalità che permette di far eseguire a vlc una determinata operazione al momento desiderato e di ripeterla periodicamente. Lo scheduler è una delle opzioni offerte da vlm, il &#8220;linguaggio&#8221; di scripting di vlc&#8230;<span id="more-7"></span>Vlm consente di passare a vlc, tramite l&#8217;interfaccia telnet o un file di configurazione, dei comandi che permettono di sfruttare tutte le funzionalità offerte da vlc soprattutto in qualità di server, infatti vlm è stato pensato principalmente per sessioni di video on demand consentendo di gestire lo streaming di diversi file con un unico processo vlc aperto, ma di fatto può essere utilizzato per compiere qualsiasi operazione.</p>
<p>Utilizzando i seguenti comandi ad esempio è possibile salvare lo stream audio di radio dj su un file, definendo prima l&#8217;oggetto &#8220;deejay&#8221; e specificandone in seguito i parametri di ingresso (l&#8217;indirizzo dello stream) e di uscita (in questo caso un file):</p>
<blockquote><p>new deejay broadcast enabled</p>
<p>setup deejay input mms://live.mediaserver.kataweb.it/radiodeejay</p>
<p>setup deejay output #std{access=file,mux=asf,dst=&#8221;radio.asf&#8221;}</p>
<p>control deejay play</p></blockquote>
<p>Ho dovuto definire &#8220;deejay&#8221; come oggetto broadcast &#8220;fittizio&#8221; in quanto, come accennato prima, vlm è nato per la configurazione di vlc come server per la trasmissione broadcast oppure &#8220;on demand&#8221;. In seguito però con il parametro output ho specificato di indirizzare l&#8217;uscita su un file, senza ritrasmettere nulla. Questi comandi possono essere passati tramite telnet riga per riga, oppure inseriti in un file &#8220;deejay.vlm&#8221; e poi dati in pasto a vlc quando lo si lancia da riga di comando:</p>
<p>vlc &#8211;vlm-conf  deejay.vlm</p>
<p>In questo modo vlc inizia da subito a salvare lo stream su file. Se invece si vuole programmare la registrazione con lo scheduler si devono inserire altri parametri per specificare la data per lo start e quella per lo stop:</p>
<blockquote><p>new deejay broadcast enabled</p>
<p>setup deejay input mms://live.mediaserver.kataweb.it/radiodeejay</p>
<p>setup deejay output #std{access=file,mux=asf,dst=&#8221;radio.asf&#8221;}</p>
<p>new start schedule enabled</p>
<p>setup start date 2008/01/07-22:30:00</p>
<p>setup start append control deejay play</p>
<p>new stop schedule enabled</p>
<p>setup stop date  2008/01/08-00:01:00</p>
<p>setup stop append control deejay stop</p></blockquote>
<p>In questo caso ho definito due oggetti &#8220;start&#8221; e &#8220;stop&#8221; , li ho assegnati alla categoria schedule, ne ho definito i parametri date e control e infine li ho associati all&#8217;oggetto &#8220;deejay&#8221;. Con questo script vlc inizia a registrare lo stream alle 22e30 del 7 gennaio e finisce alle 00:01 dell&#8217;8 gennaio.</p>
<p>Il passo successivo è quello di rendere periodica questa operazione, configurando lo scheduler per eseguire la registrazione allo stesso orario di ogni lunedì. Questo può essere fatto utilizzando il parametro period, indicando di ripetere i comandi start e stop ogni 7 giorni. Ad esempio per il comando di start si ottiene:</p>
<blockquote><p>&#8230;</p>
<p>new start schedule enabled</p>
<p>setup start date 2008/01/07-22:30:00</p>
<p>setup start period 0/0/7-00:00:00  (cioè ogni 7 giorni)</p>
<p>setup start append control deejay play</p>
<p>&#8230;</p></blockquote>
<p>Lo stesso parametro andrebbe aggiunto all&#8217;oggetto &#8220;stop&#8221;.</p>
<p>Questo metodo presenta però alcuni svantaggi, infatti se durante la settimana la macchina venisse riavviata oppure venisse terminato il processo di vlc, al suo riavvio occorrerebbe riconfigurare lo script a partire dal giorno successivo, infatti lo scheduler permette di registrare ogni 7 giorni a partire dal giorno specificato, quindi riavviando vlc con il vecchio script lo scheduler attenderebbe una data che si è già verificata e non verrebbe registrato più niente. Inoltre con questo metodo occorre intervenire &#8220;manualmente&#8221; per spostare o rinominare ogni registrazione ed evitare che venga sovrascritta con la registrazione successiva.</p>
<p>Ho pensato quindi di risolvere la faccenda una volta per tutte combinando lo scheduler di vlm con <a href="http://www.insanet.org/?p=4">cron</a>, così:</p>
<ul>
<li>creare uno script bash che generi a sua volta uno script vlm (come visto sopra) che abbia lo scheduler  impostato per registrare la trasmissione nel giorno corrente,  usando il comando date di linux per ricavare la data da utilizzare sia nello scheduler che nel nome del file (in modo da generare file diversi con la sintassi già vista la volta scorsa).</li>
<li>impostare cron per richiamare lo script ogni lunedì prima dell&#8217;inizio della registrazione.</li>
</ul>
<p>Questo è lo script bash &#8220;deejay.sh&#8221;:</p>
<blockquote><p>#! /bin/bash<br />
start_date=$(date +%Y/%m/%d)-19:00:00<br />
stop_date=$(date &#8211;date=&#8217;tomorrow&#8217; +%Y/%m/%d)-19:04:00<br />
giorno=$(date +%d)<br />
mese=$(date +%b)<br />
anno=$(date +%y)<br />
titolo=cordialmente$giorno$mese$anno.asf</p>
<p>echo &#8220;new deejay broadcast enabled<br />
setup deejay input mms://live.mediaserver.kataweb.it/radiodeejay<br />
setup deejay output #std{access=file,mux=asf,dst=\&#8221;$titolo\&#8221;}<br />
new start schedule enabled<br />
setup start date $start_date<br />
setup start append control deejay play<br />
new stop schedule enabled<br />
setup stop date $stop_date<br />
setup stop append control deejay stop &#8221; &gt; /home/muse/deejay.vlm</p>
<p>sleep 2</p>
<p>/usr/bin/vlc -I telnet &#8211;vlm-conf /home/muse/deejay.vlm -d</p></blockquote>
<p>Da notare il comando <em>date &#8211;date=&#8217;tomorrow&#8217; +%Y/%m/%d </em>che è un utile opzione di <em>date </em>per generare una data futura o passata. Ringrazio l&#8217;autore dell&#8217;articolo <a href="http://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html">Getting Yesterdays or Tomorrows day with shell date command</a> per avermi illuminato.</p>
<p><a href="http://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html" rel="bookmark" title="Permanent Link to Getting Yesterdays or Tomorrows day with shell date command"></a>Ho inserito alla fine il comando per avviare vlc, usando come file di configurazione &#8220;deejay.vlm&#8221; generato dallo script stesso. Lo sleep serve a introdurre un pò di ritardo tra la scrittura del file e il suo utilizzo da parte di vlc. Ho dovuto inoltre aggiungere il parametro &#8220;-I telnet&#8221; perchè altrimenti vlc proverebbe ad aprire l&#8217;interfaccia grafica generando un errore nel caso in cui il comando venisse eseguito da crontab.</p>
<p>A questo punto non resta che impostare cron per richiamare deejay.sh ogni lunedì prima dell&#8217;orario di registrazione e per fargli terminare il processo vlc dopo che lo scheduler di vlm abbia provveduto a stoppare la registrazione stessa :</p>
<blockquote><p># m h  dom mon dow   command</p>
<p>20 22 * * 1 /home/muse/deejay.sh</p>
<p>03 00 * * 2 killall vlc</p></blockquote>
<p>E questo è quanto, buon ascolto.</p>
<p>Questo articolo è dedicato a Braindamage.. lui sa perchè, lui sa chi è, lui sa cos&#8217;è..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=7</wfw:commentRss>
		</item>
		<item>
		<title>Registrare uno stream automaticamente - #1</title>
		<link>http://www.insanet.org/?p=5</link>
		<comments>http://www.insanet.org/?p=5#comments</comments>
		<pubDate>Fri, 04 Jan 2008 03:17:19 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Streaming]]></category>

		<category><![CDATA[Vlc]]></category>

		<category><![CDATA[Cron]]></category>

		<category><![CDATA[Scheduling]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=5</guid>
		<description><![CDATA[Uno dei miei più grossi problemi è sempre stato quello di ricordarmi della mia trasmissione radiofonica preferita (eh si, una vita al limite la mia), &#8220;Cordialmente&#8221; su radio deejay.. un pò perchè va in onda il lunedì sera alle 22 e 30 in concomitanza spesso con altri programmi (tipo Lost), un pò perchè di solito [...]]]></description>
			<content:encoded><![CDATA[<p>Uno dei miei più grossi problemi è sempre stato quello di ricordarmi della mia trasmissione radiofonica preferita (eh si, una vita al limite la mia), &#8220;<a href="http://www.deejay.it/dj/programma?idProgramma=19" target="_blank">Cordialmente</a>&#8221; su radio deejay.. un pò perchè va in onda il lunedì sera alle 22 e 30 in concomitanza spesso con altri programmi (tipo Lost), un pò perchè di solito a quell&#8217;ora sono davanti al pc e il tempo vola..</p>
<p><img src="http://img527.imageshack.us/img527/3800/muselio5xv.gif" alt="Il mitico Elio, uno dei protagonisti di Cordialmente" height="126" width="450" /></p>
<p>Dopo l&#8217;ennesima puntata persa, ho deciso di impostare <a href="http://www.insanet.org/?p=4"><em>Cron</em></a> su Linux per registrare lo stream di RadioDJ automaticamente ogni lunedì dalle 22e30 alle 24&#8230;</p>
<p><span id="more-5"></span>La scelta sull&#8217;applicazione da utilizzare è ricaduta ovviamente su vlc, come fonte ho preso in prestito lo stream di kataweb, dato che lo uso da anni per ascoltare radio dj al pc e si è sempre dimostrato affidabile, inoltre non occupa molta banda, solo 32 kbps, che vi assicuro basta e avanza..</p>
<p>Provando a lanciare il comando <em>vlc mms://live.kataweb.mediaserver.it/radiodeejay</em> dopo pochi secondi si dovrebbe iniziare a sentire l&#8217;audio di radio dj, a patto di avere una sessione grafica aperta, il comando infatti prevede l&#8217;apertura di vlc in modalità gui (con interfaccia grafica).</p>
<p>Per eseguire la registrazione dello stream in background occorre specificare alcuni parametri di vlc:</p>
<p><em>vlc mms://live.mediaserver.kataweb.it/radiodeejay &#8211;sout file/asf:cordialmente.asf -d</em></p>
<p>dove -d consente di eseguire vlc in background senza interfaccia grafica e il parametro <em>&#8211;sout file/muxer:nomefile.ext</em> indica a vlc di indirizzare l&#8217;output su file, in questo caso senza transcoding, col formato (muxer) desiderato.</p>
<p>Nel caso in questione, lo stream è trasmesso con codifica wma2, ho scelto quindi il formato compatibile asf in attesa che vengano risolti alcuni problemini di vlc 0.86 con il transcoding in mp3.</p>
<p>Ora che il comando è pronto e collaudato, si può inserirlo in Cron, lanciando <em>crontab -e</em>  e inserendo due entry: una serve per far partire vlc e l&#8217;altra serve a fermarlo:<br />
# m h  dom mon dow   command</p>
<p>30 22 * * 1        vlc mms://live.mediaserver.kataweb.it/radiodeejay &#8211;sout file/asf:cordialmente.asf -d</p>
<p>01 00 * * 2 killall vlc</p>
<p>La registrazione inizia alle 22e30 di ogni lunedì e finisce a mezzanotte e un minuto, cioè alle 00e01 del martedì successivo. Questo comando va bene se non stiamo usando altre istanze di vlc altrimenti bisognerebbe ricorrere ad altri stratagemmi per terminare solo il processo desiderato.</p>
<p>Nel mio caso ho voluto fare un passo in più.. solitamente nomino i file delle registrazioni in modo da riportare la data della trasmissione, ad esempio &#8220;cordialmente29ott07.asf&#8221; e così via, ed ho pensato quindi di creare un piccolo script radiodeejay.sh per automatizzare anche la creazione del nome del file in base alla data corrente al momento delle registrazione, utilizzando il comando <em>date</em> di linux:</p>
<p>#!/bin/sh<br />
giorno=$(date +%d)<br />
mese=$(date +%b)<br />
anno=$(date +%y)<br />
titolo=cordialmente$giorno$mese$anno.asf<br />
/usr/bin/vlc mms://live.mediaserver.kataweb.it/radiodeejay &#8211;sout file/asf:$titolo -d</p>
<p>Quindi in questo caso la entry di cron dovrà invocare non più il comando per vlc ma lo script:</p>
<p># m h  dom mon dow   command</p>
<p>30 22 * * 1        /home/muse/radiodeejay.sh</p>
<p>01 00 * * 2 killall vlc</p>
<p>A questo punto potrebbero essere inseriti facilmente altri comandi in sequenza, ad esempio per convertire il formato del file e poi copiarlo in una directory di backup.</p>
<p>Facendo qualche prova mi sono accorto pero&#8217; che i file .asf salvati da vlc non sono &#8220;seekabili&#8221; in quanto, molto probabilmente, killando brutalmente vlc durante il salvataggio dello stream gli headers del formato vanno a farsi benedire e si perde cosi&#8217; la possibilita&#8217; di scorrere il file avanti o indietro.. l&#8217;unico modo per risolvere il problema e&#8217; di passare in qualche modo il comando &#8220;stop&#8221; a vlc e solo successivamente fermare il processo..</p>
<p>Devo risolvere la questione entro lunedi&#8217; o il mondo e&#8217; spacciato.  Stay tuned !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=5</wfw:commentRss>
		</item>
		<item>
		<title>Happy Nerd Year !</title>
		<link>http://www.insanet.org/?p=6</link>
		<comments>http://www.insanet.org/?p=6#comments</comments>
		<pubDate>Tue, 01 Jan 2008 01:24:17 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Real Life ..or something close to it..]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=6</guid>
		<description><![CDATA[year = $(date +%Y)
echo &#8220;Welcome $year! &#8220;
]]></description>
			<content:encoded><![CDATA[<p>year = $(date +%Y)</p>
<p>echo &#8220;Welcome $year! &#8220;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=6</wfw:commentRss>
		</item>
		<item>
		<title>Operazioni pianificate su Linux - Cron</title>
		<link>http://www.insanet.org/?p=4</link>
		<comments>http://www.insanet.org/?p=4#comments</comments>
		<pubDate>Thu, 27 Dec 2007 17:39:43 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Cron]]></category>

		<category><![CDATA[Scheduling]]></category>

		<category><![CDATA[Vlc]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=4</guid>
		<description><![CDATA[Cron è un demone di Gnu/Linux presente sin dalla prima versione di Unix del 1974, il suo scopo è quello di eseguire automaticamente delle operazioni con una cadenza scelta dall&#8217;utente.
Cron può essere utilizzato per svariati scopi, ad esempio per creare file di backup ogni tot minuti oppure per cancellare dei file temporanei periodicamente.. praticamente qualsiasi [...]]]></description>
			<content:encoded><![CDATA[<p>Cron è un demone di Gnu/Linux presente sin dalla prima versione di Unix del 1974, il suo scopo è quello di eseguire automaticamente delle operazioni con una cadenza scelta dall&#8217;utente.</p>
<p>Cron può essere utilizzato per svariati scopi, ad esempio per creare file di backup ogni tot minuti oppure per cancellare dei file temporanei periodicamente.. praticamente qualsiasi cosa possa essere fatta tramite comandi da shell &#8230;</p>
<p><span id="more-4"></span><br />
Cron si può configurare tramite il file &#8220;crontab&#8221;, ne esiste uno per ogni utente, con il quale può eseguire comandi su file di sua proprietà nel proprio user-space, ed è situato solitamente in <em>/var/spool/cron/crontabs/nomeutente</em>.</p>
<p>Esiste poi il crontab di sistema <em>/etc/crontab</em> nel quale sono presenti solitamente operazioni periodiche che riguardano il sistema.</p>
<h4>User Crontab.</h4>
<p>Un normale utente può modificare il suo crontab con il comando <em>crontab -e</em> con il quale accede al suo file <em>/var/spool/cron/crontabs/nomeutente</em> con l&#8217;editor di default. Su Debian/Ubuntu molto probabilmente verrà avviato &#8220;nano&#8221; ma con il comando <em>sudo update-alternatives –config editor</em> è possibile cambiare l&#8217;editor predefinito scegliendone uno dalla lista che apparirà sullo schermo. Ad ogni riga corrisponderà un operazione secondo la seguente sintassi:<br />
<em>minuti</em><em>       ora        giorno del mese       mese    giorno della settimana   comando  </em></p>
<p>I campi possono assumere determinati valori:</p>
<p><em>minuti     (0-59)</em></p>
<p><em>ora    (0-23)</em></p>
<p><em>giorno del mese    (1-31)</em></p>
<p><em>mese    (1-12)</em></p>
<p><em>giorno della settimana     (0=Domenica &#8230; 6=Sabato)</em></p>
<p>Ad esempio la riga seguente serve a rimuovere i file temp dalla propria home directory ogni lunedì alle 23:00 :</p>
<p>23 00 * * 1 rm /home/muse/tmp/*</p>
<p>Ad ogni campo possono essere attribuiti valori particolari per eseguire operazioni ciclicamente oppure solo in determinati giorni o mesi.  Ad esempio per catturare l&#8217;immagine dalla webcam ogni 5 minuti, dal lunedì al venerdì, solo a giugno, luglio e novembre (che fantasia) si può indicare:</p>
<p>*/5    *    *    6,7,11    1-5    streamer -c /dev/video0 -b 16 -o capture.jpeg</p>
<p>dove  */5 indica proprio &#8220;ogni 5 minuti&#8221;.</p>
<p>Una volta salvato, il crontab può essere visualizzato con il comando <em>crontab -l</em> e cancellato con <em>crontab -r</em> (questo comando cancellaerà tutte le entry). Se si vogliono apportare modifiche o cancellare singole entry, è necessario ricorrere nuovamente al comando <em>crontab -e</em>.</p>
<p>I comandi invocati da cron vengono eseguiti con i privilegi dell&#8217;utente a cui appartiene il crontab e con la sua home directory come path predefinito. tuttavia è possibile indicare a cron le variabili d&#8217;ambiente da utilizzare, indicandole nel file crontab o in uno script invocato:</p>
<p><font face="Times New Roman" size="3"> HOME=/home/muse/</font></p>
<p><font face="Times New Roman" size="3">PATH=/usr/bin:/usr/sbin:/bin</font></p>
<p><font face="Times New Roman" size="3">SHELL=/usr/bin/sh</font></p>
<p>Quando un comando  genera un output, cron lo invia all&#8217;utente tramite mail all&#8217;utente a meno che l&#8217;output del comando non venga dirottato, ad esempio con</p>
<p>23 00 * * 1 rm /home/muse/tmp/*  &gt; /dev/null</p>
<p>Allo stesso modo si può redirigere l&#8217;output su un file che costituirà il log degli eventi di cron.</p>
<h4> Crontab di sistema e run-parts.</h4>
<p>Nel crontab di sistema è presenta un campo in più che serve a indicare l&#8217;utente con il quale eseguire i comandi, spesso è root:</p>
<p><em>minuti</em><em>       ora        giorno del mese       mese    giorno della settimana     utente  comando</em></p>
<p>In un crontab di sistema è possibile trovare delle entry che invocano dei <em>run-parts</em>,  comandi che eseguono tutti gli scripts contenuti all&#8217;interno di directory suddivise a seconda della periodicità dell&#8217;esecuzione degli script. Queste directory sono /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly.</p>
<p>Posizionando uno script all&#8217;interno di una di queste directory verrà eseguito automaticamente ogni ora, giorno, settimana o mese a seconda della directory scelta, con privilegi di root., senza bisogno di dover specificare un crontab.</p>
<h4>Autorizzazioni per Cron.</h4>
<p>I file /etc/cron.allow e /etc/cron.deny contengono rispettivamente la lista degli utenti autorizzati o meno ad utilizzare cron. Questi file sono composti semplicemente da un&#8217;unica colonna in cui ogni riga corrisponde al nome di un utente, e possono anche non essere presenti nel sistema: in questo caso crontab consentirà a qualsiasi utente di eseguire un comando tramite cron, purchè l&#8217;utente abbia gli opportuni privilegi.</p>
<p>Al momento dell&#8217;esecuzione di un comando, Cron controlla per prima cosa l&#8217;esistenza del file /etc/cron.allow, nel caso quest&#8217;ultimo esiste allora il comando verrà eseguito solo se l&#8217;utente a cui appartiene il crontab è presente nella lista.</p>
<p>Se /etc/cron.allow non esiste, cron cerca il file /etc/cron.deny, se questo esiste allora il comando verrà eseguito solo se l&#8217;utente propietario del crontab non è presente nella lista.</p>
<p>Questo vale sia per i crontab di sistema, dove l&#8217;utente è specificato all&#8217;interno di ogni entry, che per i crontab degli utenti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=4</wfw:commentRss>
		</item>
		<item>
		<title>Hello World !</title>
		<link>http://www.insanet.org/?p=3</link>
		<comments>http://www.insanet.org/?p=3#comments</comments>
		<pubDate>Sun, 23 Dec 2007 01:20:04 +0000</pubDate>
		<dc:creator>muse</dc:creator>
		
		<category><![CDATA[Insanews]]></category>

		<guid isPermaLink="false">http://www.insanet.org/?p=3</guid>
		<description><![CDATA[Hello World !
]]></description>
			<content:encoded><![CDATA[<p>Hello World !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insanet.org/?feed=rss2&amp;p=3</wfw:commentRss>
		</item>
	</channel>
</rss>
