<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mia mamma usa Linux! &#187; Generale</title>
	<atom:link href="http://www.miamammausalinux.org/category/generale/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.miamammausalinux.org</link>
	<description>Perché niente è impossibile da capire... Se lo spieghi bene !</description>
	<lastBuildDate>Mon, 02 Jan 2012 11:31:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Incron: monitorare directory e rispondere ad eventi specifici</title>
		<link>http://www.miamammausalinux.org/2011/10/monitorare-directory-e-rispondere-ad-eventi-specifici/</link>
		<comments>http://www.miamammausalinux.org/2011/10/monitorare-directory-e-rispondere-ad-eventi-specifici/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 09:13:15 +0000</pubDate>
		<dc:creator>Matteo Cappadonna</dc:creator>
				<category><![CDATA[Generale]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Utility]]></category>

		<guid isPermaLink="false">http://www.miamammausalinux.org/?p=1488</guid>
		<description><![CDATA[Con questo articolo vedremo come, utilizzando un tool che dialoga direttamente con il kernel Linux, monitorare un particolare path e rispondere ad alcuni eventi lanciando diversi comandi. Come al solito mi piace analizzare una problematica reale per far comprendere meglio il problema e la soluzione che andremo ad implementare. Immaginiamo di avere una macchina Linux [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.miamammausalinux.org/wp-content/uploads/2011/10/inotify.png" alt="inotify" title="inotify" width="137" height="50" class="size-full wp-image-1499" /></p>
<p>Con questo articolo vedremo come, utilizzando un tool che dialoga direttamente con il kernel Linux, monitorare un particolare path e rispondere ad alcuni eventi lanciando diversi comandi.</p>
<p>Come al solito mi piace analizzare una problematica reale per far comprendere meglio il problema e la soluzione che andremo ad implementare.</p>
<p>Immaginiamo di avere una macchina Linux (in questo caso specifico andremo ad utilizzare un server CentOS) attestata sulla rete perimetrale/pubblica della nostra azienda.</p>
<p>Questa macchina ha delle directory utente che vengono utilizzate, da procedure automatiche presenti su server remoti di altre aziende, per caricare dei file che la nostra azienda ha necessità di elaborare.</p>
<p>La soluzione &#8220;quick &amp; dirty&#8221; sarebbe quella di accordarsi con l&#8217;azienda che caricherà il file sul nostro sistema sull&#8217;ora e definire una seguente procedura:</p>
<ul>
<li>Alle ore 00:00 viene avviato il trasferimento del file (di dimensione variabile) tramite scp</li>
<li>Alle ore 01:00 viene avviato tramite cron un job che prende il file e lo elabora</li>
</ul>
<p>Questa soluzione tendenzialmente può funzionare, ma possono verificarsi diversi problemi che possono bloccare la nostra procedura. Per esempio:</p>
<ul>
<li>Un problema sulle procedure dell&#8217;azienda remota tardano o falliscono, facendo slittare l&#8217;upload del file di più di un&#8217;ora. In questo caso il nostro job in partenza alle 01:00 fallirà poiché non troverà il file caricato.</li>
<li>Sempre un problema sulle procedure dell&#8217;azienda remota fa tardare l&#8217;avvio dell&#8217;upload del file. In questo caso, quando il nostro job parte, potrebbe tentare di elaborare un file non ancora completo</li>
<li>Le procedure partono correttamente ma, un lag di rete dato da N possibili motivi, fa allungare il tempo di trasferimento del file. Anche qui il nostro job potrebbe tentare di elaborare un file non ancora completamente trasferito.</li>
<li>Delle modifiche alle procedure remote fanno variare il nome del file (che era stato precedentemente accordato). In questo caso, anche se il trasferimento è completo, il nostro script (se non correttamente ingegnerizzato) potrebbe non trovare il file semplicemente perché non si chiama come ci si aspetterebbe</li>
<li>Sempre per modifiche alle procedure remote, il file potrebbe arrivare non normalizzato (quindi con permission sballate, etc.). In questo caso, magari, il nostro script potrebbe non essere in grado di leggere/scrivere o, più in generale, di elaborare il file</li>
</ul>
<p>Come appare evidente, le problematiche possono essere molteplici!!!<br />
Fortunatamente stiamo lavorando su linux e, il più delle volte, ci viene data la possibilità di risolvere i nostri problemi con un po&#8217; di ingegno!</p>
<p><strong>inotify</strong></p>
<p>inotify è un sottosistema del kernel linux che lavora a livello di filesystem e ci permette, a fronte di alcuni eventi catturati, di notificare le variazioni all&#8217;applicazione.<br />
E&#8217; stato incluso nel mainstream del kernel linux con la versione 2.6.13 (rilasciata a Giugno 2005), ma può essere compilato con la versione 2.6.12 (e precedenti), tramite l&#8217;utilizzo di una patch.</p>
<p>In poche parole, dato un path, il sottosistema ne controlla gli inode puntati, e reagisce ad uno o più eventi su essi. A fronte dello scatenarsi di un evento (definito <strong>mask</strong> &#8211; maschera), possono essere eseguite delle operazioni.</p>
<p>Alcuni eventi che possono essere monitorati sono i seguenti:</p>
<ul>
<li><strong>IN_ACCESS</strong> &#8211; E&#8217; stato fatto un&#8217;accesso in lettura ad un file</li>
<li><strong>IN_MODIFY</strong> &#8211; E&#8217; stata eseguita una modifica ad un file</li>
<li><strong>IN_ATTRIB</strong> &#8211; E&#8217; stata eseguita una modifica agli attributi di un file</li>
<li><strong>IN_OPEN</strong> &#8211; Un file è stato aperto</li>
<li><strong>IN_CLOSE_WRITE</strong> &#8211; Un file, aperto in scrittura, è stato chiuso</li>
<li><strong>IN_CLOSE_NOWRITE</strong> &#8211; Un file, aperto NON in scrittura, è stato chiuso</li>
<li><strong>IN_MOVED_FROM</strong> e <strong>IN_MOVED_TO</strong> &#8211; Un file è stato spostato o copiato</li>
<li><strong>IN_DELETE</strong> &#8211; Un file/directory è stato cancellato</li>
<li><strong>IN_CREATE</strong> &#8211; Un file/directory è stato creato</li>
<li><strong>IN_DELETE_SELF</strong> &#8211; Il file/directory monitorato è stato cancellato</li>
</ul>
<p><strong>incrond</strong></p>
<p>incrond è un demone che funziona in maniera molto simile a quello che è l&#8217;ormai conosciutissimo demone cron; la differenza sta nel fatto che, se cron lavora con giorni ed orari, incrond lavora invece con inotify.</p>
<p>Quello che possiamo fare per rendere la nostra procedura &#8220;intelligente&#8221; è andare a monitorare il path in cui l&#8217;azienda remota esegue l&#8217;upload del file e, al termine dell&#8217;upload, lanciare il job che elabora il file.<br />
Questo ci permette di evitare di legarsi a gli orari, e di lanciare il nostro job ogni volta che un file viene caricato, indipendentemente dall&#8217;ora o dal nome del file. Esattamente quello che ci interessa.</p>
<p>Intanto andiamo ad installare il demone, operazione estremamente semplice:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;"># yum install incrond</pre></div></div>

<p>A questo punto, la prima cosa da fare è creare il file /etc/incrond.allow contenente la lista degli utenti abilitati all&#8217;uso di incrond. Nel nostro caso abilitiamo l&#8217;utente <em>root</em> e l&#8217;utente <em>matteo</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;"># cat &gt; /etc/incrond.allow &lt;&lt;EOF
&gt;root
&gt;matteo
&gt;EOF
# cat /etc/incrond.allow
root
matteo</pre></div></div>

<p>Avviamo il demone ed assicuriamoci che sia abilitato per l&#8217;avvio automatico al boot della macchina:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;"># service incrond start
Starting incrond:                                          [  OK  ]
# chkconfig --list incrond
incrond        	0:off	1:off	2:off	3:off	4:off	5:off	6:off
# chkconfig incrond on</pre></div></div>

<p>Ok, adesso siamo pronti per il definire il nostro monitoraggio.</p>
<p>Poniamo, nel nostro esempio, che l&#8217;utente <em>matteo</em> sia l&#8217;utente che carica il file, e che lo carica nel path /home/matteo/uploads.</p>
<p>Iniziamo a definire la incrontab (vedrete che l&#8217;assonanza con cron non è solo nelle definizioni, ma anche nei comandi) per l&#8217;utente matteo. Il comando è semplicissimo:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;"># su - matteo
$ incrontab -e</pre></div></div>

<p>Questo apre il nostro editor di default e ci permette di compilare la incrontab.<br />
Questa incrontab è composta da 3 campi (che vedremo di seguito) separati da spazio</p>
<p><strong>ATTENZIONE</strong> &#8211; I campi DEVONO essere separati dal carattere di spaziatura. Separare i campi con il consueto TAB porta a problemi di interpretazione della incrontab da parte del demone incrond (dai, è tutto molto bello, un piccolo difetto lo possiamo anche concedere <img src='http://www.miamammausalinux.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>I tre campi sono, nell&#8217;ordine:</p>
<ul>
<li><strong>path</strong> &#8211; Il path ASSOLUTO che si desidera monitorare</li>
<li><strong>mask</strong> &#8211; L&#8217;evento che si vuole monitorare. Sono supportati tutte le maschere che sono state descritte prima, più la maschera IN_ALL_EVENTS che, semplicemente, cattura tutti gli eventi (ottima per il debugging)</li>
<li><strong>command</strong>- Il comando da eseguire quando viene catturato l&#8217;evento. Da notare che in questo comando possiamo utilizzare delle variabili di inotify che ci vengono passate direttamente dal demone. Queste variabili sono:
<ul>
<li><strong>$@</strong> &#8211; Il path monitorato</li>
<li><strong>$#</strong> &#8211; Il file sul quale si è scatenato l&#8217;evento</li>
<li><strong>$%</strong> &#8211; L&#8217;evento, in forma testuale, che si è verificato</li>
<li><strong>$&amp;</strong> &#8211; L&#8217;evento, in forma numerica, che si è verificato</li>
<li><strong>$$</strong> &#8211; Il carattere $</li>
</ul>
</li>
</ul>
<p>Semplice, non trovate?</p>
<p>Allora, torniamo all&#8217;esempio. Il nostro job si trova nella directory /home/matteo/scripts/, si chiama <em>elaborazione.sh</em> ed accetta come parametro il nome del file da elaborare.</p>
<p>Facciamo un&#8217;attimo il punto della situazione. In un certo momento (non sappiamo quale), la procedura remota andrà a caricare, con scp, il nostro file.<br />
Una volta effettuata la connessione con successo, il file verrà in primo luogo creato (IN_CREATE), aperto in scrittura (IN_OPEN), scritto (una sequenza di IN_MODIFY) ed infine chiuso (IN_CLOSE_WRITE, visto che era stato aperto in scrittura).</p>
<p>Quindi, l&#8217;evento che andrà a determinare la fine del trasferimento è IN_CLOSE_WRITE. Andiamo quindi a compilare la incrontab dell&#8217;utente matteo:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;">/home/matteo/uploads IN_CLOSE_WRITE /home/matteo/scripts/elaborazione.sh $@/$#</pre></div></div>

<p>Salviamo usciamo ed assicuriamoci che la nuova incrontab sia stata letta ed interpretata dal sistema:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;">table updated
$ exit
# tail -1 /var/log/cron
Oct 27 10:30:39 myserver incrond[889]: table for user matteo changed, reloading</pre></div></div>

<p>Possiamo testare se funziona caricando un dummy file (supponiamo che i file contenti il testo &#8220;dummy&#8221; vengano ignorati dal nostro script) da una macchina remota:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;">client$ cat &gt; dummyfile &lt;&lt;EOF
&gt;dummy
&gt;EOF
client$ cat dummyfile
dummy
client$ scp dummyfile matteo@myserver:uploads/
Password:</pre></div></div>

<p>Torniamo sul server e, dal log di cron, vediamo che incrond ha catturato l&#8217;evento ed ha eseguito il nostro elaboratore:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;"># tail -1 /var/log/cron
Oct 27 10:35:43 myserver incrond[889]: (matteo) CMD (/home/matteo/scripts/elaborazione.sh /home/matteo/uploads/dummyfile)</pre></div></div>

<p>&nbsp;</p>
<p><strong>Conclusioni</strong></p>
<p>Abbiamo visto come installare e configurare incrond per monitorare il cambio di stato di un file in una directory.<br />
Questa è una possibile soluzione pratica ad un problema che, tendenzialmente, si verifica abbastanza di frequente in ambienti enterprise, in cui ci sono flussi di lavoro locali/remoti che devono lavorare in relazione gli uni con gli altri.</p>
<p>In realtà, gli utilizzi di inotify sono estremamente ampi; per esempio, è il sistema che viene normalmente utilizzato dagli indicizzatori di filesystem su linux (per esempio, Beagle di SUSE).<br />
Andando a monitorare l&#8217;intero filesystem (/) ed avendo le notifiche sulle modifiche di qualsiasi file al suo interno, l&#8217;indicizzatore può aggiornare i suoi database senza doversi rileggere l&#8217;intero filesystem.</p>
<p>Un&#8217;altro utilizzo può essere quello di monitorare il file di log di un&#8217;applicazione. Quando questa applicazione andrà a loggare qualcosa, possiamo mandare una mail contenente il file di configurazione a qualcuno.</p>
<p>Il limite è il vostro ingegno <img src='http://www.miamammausalinux.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.miamammausalinux.org/2011/10/monitorare-directory-e-rispondere-ad-eventi-specifici/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Seminario &#8220;Evoluzione dell&#8217;alta affidabilita&#8217; su Linux&#8221;: video cinque e sei di sei &#8211; &#8220;Il Progetto&#8221;</title>
		<link>http://www.miamammausalinux.org/2011/08/seminario-evoluzione-dellalta-affidabilita-su-linux-video-cinque-e-sei-di-sei-il-progetto/</link>
		<comments>http://www.miamammausalinux.org/2011/08/seminario-evoluzione-dellalta-affidabilita-su-linux-video-cinque-e-sei-di-sei-il-progetto/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 12:59:26 +0000</pubDate>
		<dc:creator>Raoul Scarazzini</dc:creator>
				<category><![CDATA[Generale]]></category>
		<category><![CDATA[Alta affidabilità]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Corosync]]></category>
		<category><![CDATA[Heartbeat]]></category>
		<category><![CDATA[OpenAIS]]></category>
		<category><![CDATA[Pacemaker]]></category>

		<guid isPermaLink="false">http://www.miamammausalinux.org/?p=1444</guid>
		<description><![CDATA[Ecco le parti finali del seminario di miamammausalinux.org, intitolato &#8220;Evoluzione dell&#8217;alta affidabilita&#8217; su Linux&#8221; che si è svolto nella giornata del 24 giugno 2011, presso l&#8217;hotel Holiday Inn di Rho. La quinta e la sesta parte descrivono nel dettaglio la soluzione operativa di un sistema cluster in modalità active-active, mediante configurazioni e test funzionali. Parte [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.miamammausalinux.org/wp-content/uploads/2008/11/miamammausalinux_avatar.png" alt="" title="miamammausalinux" width="124" height="125" class="alignnone size-full wp-image-761" /></p>
<p>Ecco le parti finali del seminario di <em>miamammausalinux.org</em>, intitolato &#8220;<strong>Evoluzione dell&#8217;alta affidabilita&#8217; su Linux</strong>&#8221; che si è svolto nella giornata del 24 giugno 2011, presso l&#8217;hotel Holiday Inn di Rho.</p>
<p>La quinta e la sesta parte descrivono nel dettaglio la soluzione operativa di un sistema cluster in modalità active-active, mediante configurazioni e test funzionali.</p>
<p>Parte cinque di sei &#8211; Il Progetto (parte prima):</p>
<p><script type='text/javascript' src='http://www.miamammausalinux.org/wp-content/plugins/hana-flv-player/flowplayer/html/flashembed.min.js'></script>
<div >
<div id='hana_flv_flow_1'>*Video:evoluzione dell'alta affidabilita' su linux &#8211; 5 di 6 &#8211; il progetto, parte prima</div>
</div>

<script type='text/javascript'>
    flashembed('hana_flv_flow_1',
      { src:'http://www.miamammausalinux.org/wp-content/plugins/hana-flv-player/flowplayer/FlowPlayerDark.swf', wmode: 'transparent', width: 342,  height: 192 },
      { config: { videoFile: 'http://www.miamammausalinux.org/wp-content/uploads/videos/20110624%20-%20Evoluzione%20dell%27alta%20affidabilita%27%20su%20Linux/Evoluzione%20dell%27alta%20affidabilita%27%20su%20Linux%20-%205%20di%206%20-%20Il%20Progetto,%20parte%20prima.flv', autoPlay: false ,loop: false, autoRewind: false, autoBuffering: false,
			splashImageFile: 'http://www.miamammausalinux.org/wp-content/uploads/videos/20110624%20-%20Evoluzione%20dell%27alta%20affidabilita%27%20su%20Linux/Evoluzione%20dell%27alta%20affidabilita%27%20su%20Linux%20-%205%20di%206%20-%20Il%20Progetto,%20parte%20prima.jpg', initialScale: 'scale' 

	    }}
    );
</script></p>
<p>Parte sei di sei &#8211; Il Progetto (parte seconda):</p>
<p>
<div >
<div id='hana_flv_flow_2'>*Video:evoluzione dell'alta affidabilita' su linux &#8211; 6 di 6 &#8211; il progetto, parte seconda</div>
</div>

<script type='text/javascript'>
    flashembed('hana_flv_flow_2',
      { src:'http://www.miamammausalinux.org/wp-content/plugins/hana-flv-player/flowplayer/FlowPlayerDark.swf', wmode: 'transparent', width: 342,  height: 192 },
      { config: { videoFile: 'http://www.miamammausalinux.org/wp-content/uploads/videos/20110624%20-%20Evoluzione%20dell%27alta%20affidabilita%27%20su%20Linux/Evoluzione%20dell%27alta%20affidabilita%27%20su%20Linux%20-%206%20di%206%20-%20Il%20Progetto,%20parte%20seconda.flv', autoPlay: false ,loop: false, autoRewind: false, autoBuffering: false,
			splashImageFile: 'http://www.miamammausalinux.org/wp-content/uploads/videos/20110624%20-%20Evoluzione%20dell%27alta%20affidabilita%27%20su%20Linux/Evoluzione%20dell%27alta%20affidabilita%27%20su%20Linux%20-%206%20di%206%20-%20Il%20Progetto,%20parte%20seconda.jpg', initialScale: 'scale' 

	    }}
    );
</script></p>
<p>Serie completa:</p>
<ul>
<li>Seminario “Evoluzione dell’alta affidabilita’ su Linux”: <a href="http://www.miamammausalinux.org/2011/07/seminario-evoluzione-dellalta-affidabilita-su-linux-video-uno-e-due-di-sei-introduzione-e-cluster/" title="Prima parte">video uno e due di sei – “Introduzione” e “Cluster”</a>
</li>
<li>Seminario “Evoluzione dell’alta affidabilita’ su Linux”: <a href="http://www.miamammausalinux.org/2011/07/seminario-evoluzione-dellalta-affidabilita-su-linux-video-tre-e-quattro-di-sei-heartbeatcorosync-e-drbd/" title="Seconda parte">video tre e quattro di sei – “Heartbeat/Corosync” e “DRBD”</a>
</li>
<li>Seminario “Evoluzione dell’alta affidabilita’ su Linux”: <a href="http://www.miamammausalinux.org/2011/08/seminario-evoluzione-dellalta-affidabilita-su-linux-video-cinque-e-sei-di-sei-il-progetto/" title="Terza parte">video cinque e sei di sei – “Il Progetto”</a>
</li>
</ul>
<p><em>Un ringraziamento particolare a <strong>Lorenzo</strong>, per il preziosissimo supporto video che ci ha permesso di condividere l&#8217;evento con quanti non sono riusciti a partecipare.</em></p>
<p><strong>Buona visione!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.miamammausalinux.org/2011/08/seminario-evoluzione-dellalta-affidabilita-su-linux-video-cinque-e-sei-di-sei-il-progetto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le soddisfazioni della vita</title>
		<link>http://www.miamammausalinux.org/2009/06/le-soddisfazioni-della-vita/</link>
		<comments>http://www.miamammausalinux.org/2009/06/le-soddisfazioni-della-vita/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 09:22:10 +0000</pubDate>
		<dc:creator>Raoul Scarazzini</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.miamammausalinux.org/?p=723</guid>
		<description><![CDATA[Crash, one last time Sì, è vero, quattrocento giorni di uptime (tempo in attività, senza cioè essere spento) non sono una cifra esagerata. Sono sicuro che chiunque lavora nell&#8217;informatica ha visto macchine raggiungere ben più alti traguardi in termini di longevità. Ma questa macchina è speciale per tanti aspetti. Il primo è quello dell&#8217;ubicazione: un [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.miamammausalinux.org/wp-content/uploads/2009/06/crash_08062009.jpg"><img src="http://www.miamammausalinux.org/wp-content/uploads/2009/06/crash_08062009-150x150.jpg" alt="Crash, one last time" title="crash_08062009" width="150" height="150" class="size-thumbnail wp-image-726" /></a></p>
<p><em>Crash, one last time</em></p>
<p>Sì, è vero, quattrocento giorni di <em>uptime</em> (tempo in attività, senza cioè essere spento) non sono una cifra esagerata. Sono sicuro che chiunque lavora nell&#8217;informatica ha visto macchine raggiungere ben più alti traguardi in termini di longevità.<br />
Ma questa macchina è speciale per tanti aspetti.<br />
Il primo è quello dell&#8217;<em>ubicazione</em>: un palazzo in cui la corrente salta se la vicina fa fare la centrifuga alla lavatrice (ma per questo ci sono gli ups, direte voi).<br />
Il secondo è quello della <em>funzionalità</em>: firewall, dns, dhcp e proxy, non proprio cose da poco (ma c&#8217;è chi fa di più, direte voi).<br />
Il terzo è quello del <em>nome</em>: <strong>crash</strong>, sebbene questa macchina nei suoi quattrocento giorni di uptime non si sia mai fermata. Anzi, per dirla correttamente, non ha mai <em>crashato</em> (e qui vi sfido, dico io).<br />
E ci sono molti altri motivi per cui al momento di digitare poweroff il dispiacere è stato grande. Ma niente dura per sempre. Ed ora che ci si è evoluti ed il CED può essere qualcosa di più di una stanza in un palazzo è tempo di digitare poweroff e premere invio.<br />
Rimane solo un&#8217;istantanea scattata velocemente con il cellulare.<br />
So long, crash.</p>
<p>P.S. : Un poco di umorismo ogni tanto non guasta <img src='http://www.miamammausalinux.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.miamammausalinux.org/2009/06/le-soddisfazioni-della-vita/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ClusTerm, ovvero come lavorare in parallelo su molti server senza troppa fatica</title>
		<link>http://www.miamammausalinux.org/2009/03/clusterm-ovvero-come-lavorare-in-parallelo-su-molti-server-senza-troppa-fatica/</link>
		<comments>http://www.miamammausalinux.org/2009/03/clusterm-ovvero-come-lavorare-in-parallelo-su-molti-server-senza-troppa-fatica/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 15:50:32 +0000</pubDate>
		<dc:creator>Alberto Noseda</dc:creator>
				<category><![CDATA[Generale]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Clusterm]]></category>
		<category><![CDATA[Scrittura parallela]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.miamammausalinux.org/?p=471</guid>
		<description><![CDATA[Oggi mostriamo un utility che torna comoda quando si lavora in ambito aziendale, dove puo&#8217; capitare di dover lavorare su una batteria di server che fanno tutti lo stesso lavoro, quindi un intervento su una macchina va replicato su tutte. Ad esempio la modifica di un parametro di start di tomcat, piuttosto che dover deployare [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.miamammausalinux.org/wp-content/uploads/2009/01/linux.png" alt="linux" title="linux" width="85" height="100" class="alignnone size-full wp-image-292" /></p>
<p>Oggi mostriamo un utility che torna comoda quando si lavora in ambito aziendale, dove puo&#8217; capitare di dover lavorare su una batteria di server che fanno tutti lo stesso lavoro, quindi un intervento su una macchina va replicato su tutte.<br />
Ad esempio la modifica di un parametro di start di tomcat, piuttosto che dover deployare lo stesso war, o dover restartare a nastro gli apache.</p>
<p>Dopo aver usato konsole e cluster-ssh mi sono imbattuto in <strong><em>clusterm</em></strong> che a mio parere e&#8217; superiore agli altri.</p>
<p>Features:<br />
1 &#8211; Divide lo schermo in tante finestre quanti sono i server del &#8220;cluster&#8221; su cui lavorare (se si sceglie la visualizzazione &#8220;table&#8221;, altre configurazioni sono possibili).<br />
2 &#8211; Per ogni finestra si puo&#8217; decidere se e&#8217; la finestra master (chiamata director) se e&#8217; uno slave (actor) oppure se uscire dal &#8220;cluster&#8221; per lavorare in proprio.<br />
3 &#8211; Crea i &#8220;launcher&#8221;: ovvero i file con le configurazioni dei vari cluster sono visti come icone cliccabili che lanciano gia&#8217; l&#8217;applicativo che apre le n finestre del &#8220;cluster&#8221; in questione. Se usati frequentemente sono comodi da avere sul desktop.<br />
4 &#8211; C&#8217;e&#8217; l&#8217;opzione &#8220;highlight differences&#8221; che graficamente mostra le differenze tra la finestra director e gli actor. Molto comodo se si stanno editando files sulle macchine.<br />
5 &#8211; Sotto gnome prende le impostazioni grafiche di default dello gnome-terminal.</p>
<p>L&#8217;installazione e&#8217; non banalissima, soprattutto come sequenza: vediamo in dettaglio tutti i passi per una Ubuntu standard (testata su una 8.10 64bit), effettuata come utente non privilegiato.</p>
<p>1 &#8211; Scaricare lo <a href="http://www.miamammausalinux.org/wp-content/uploads/2009/03/clusterm.zip">zip</a> che contiene i pacchetti e gli zip richiesti ai punti 3, 5 e 6<br />
2 &#8211; Installazione dipendenze:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;">sudo apt-get install libgtk2-perl libextutils-depends-perl 
libextutils-pkgconfig-perl libglade2-dev libgnome2-perl 
libvte-dev libgtk2-gladexml-perl libsocket6-perl perl-doc</pre></div></div>

<p>3 &#8211; Installazione libreria libnetpacket-perl_0.04-1_all che non e&#8217; nei repository (ma nel nostro zip si):</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;">sudo dpkg -i libnetpacket-perl_0.04-1_all.deb</pre></div></div>

<p>4 &#8211; Installazione libreria libgnome2-gconf-perl:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;">sudo apt-get install libgnome2-gconf-perl</pre></div></div>

<p>5 &#8211; Installazione pacchetto Gnome2-Vte-0.09.tar.gz (sempre nel nostro zip)<br />
Scompattare Gnome2-Vte-0.09.tar.gz<br />
Nella dir dove si e&#8217; scompattato lanciare:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;">perl Makefile.PL
make
make test
sudo make install</pre></div></div>

<p>6 &#8211; Installazione pacchetto dell&#8217;applicazione vero e proprio (finalmente!)<br />
Scompattare clusterm-0.6.tar.bz2 (e&#8217; sempre nello zip <img src='http://www.miamammausalinux.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )<br />
Nella dir dove si e&#8217; scompattato dare:</p>

<div class="wp_syntax"><div class="code"><pre class="console" style="font-family:monospace;">make
sudo make install</pre></div></div>

<p>Alla fine di tutto cio&#8217; sotto il menu&#8217; Application -&gt; System Tools comparira&#8217; l&#8217;icona di lancio del programma.</p>
<p>Una nota per i furbini che fanno tutto da root quando installano (io sono uno di quelli, solitamente): il make del punto 6 fallira&#8217;, perche&#8217; non e&#8217; l&#8217;utente con cui sta girando l&#8217;istanza di X attuale, quindi il make va lanciato per forza con l&#8217;utente corrente.</p>
<p>A questo punto l&#8217;interfaccia e&#8217; molto intuitiva: una barra di menu&#8217;  dove si possono aggiungere gli host da: File -&gt; New Host</p>
<p>Cio&#8217; detto&#8230; il resto lo scoprirete usando il tool!</p>
<p>enjoy</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miamammausalinux.org/2009/03/clusterm-ovvero-come-lavorare-in-parallelo-su-molti-server-senza-troppa-fatica/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mia mamma usa Linux !</title>
		<link>http://www.miamammausalinux.org/2009/01/mia-mamma-usa-linux/</link>
		<comments>http://www.miamammausalinux.org/2009/01/mia-mamma-usa-linux/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 14:57:10 +0000</pubDate>
		<dc:creator>Raoul Scarazzini</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://localhost/miamammausalinux.org/?p=12</guid>
		<description><![CDATA[Niente è impossibile da capire se lo spieghi bene! E’ il motto di questo sito che si pone l’obiettivo di illustrare esperienze dirette nell’utilizzo di Linux in ambiti produttivi. Si può fare. E niente è più vero di questo. Tutti gli articoli pubblicati su MiaMammaUsaLinux.org sono il frutto dell’esperienza diretta di persone che hanno sperimentato [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.miamammausalinux.org/wp-content/uploads/2009/01/miamammausalinux.png" alt="miamammausalinux" title="miamammausalinux" width="100" height="100" class="alignnone size-full wp-image-192" /></p>
<p>Niente è impossibile da capire se lo spieghi bene! E’ il motto di questo sito che si pone l’obiettivo di illustrare esperienze dirette nell’utilizzo di <strong>Linux</strong> in ambiti produttivi.</p>
<p><strong>Si può fare</strong>. E niente è più vero di questo. Tutti gli articoli pubblicati su <strong>MiaMammaUsaLinux.org</strong> sono il frutto dell’esperienza diretta di persone che hanno sperimentato soluzioni che funzionano e cercano di illustrarle in modo che queste possano essere ripetute.</p>
<p><strong>MiaMammaUsaLinux.org</strong> è tutto questo, e molto altro. La communità di esperti che gravita attorno al progetto si propone l’obiettivo di organizzare corsi dai costi ridotti che analizzino a fondo i temi più “caldi” trattati nel portale.</p>
<p>L’obiettivo è creare un mezzo che consenta di diffondere e far capire Linux da quante più persone possibili, perché niente è impossibile da capire se lo spieghi bene !</p>
<p><strong>Benvenuti !</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.miamammausalinux.org/2009/01/mia-mamma-usa-linux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

