<?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>Banana Docet!</title>
	<atom:link href="http://www.bananadocet.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bananadocet.com</link>
	<description>Appunti tecnici di un programmatore impazzito ...</description>
	<lastBuildDate>Fri, 10 Feb 2012 12:05:05 +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>Personalizzare dinamicamente il MOTD di linux</title>
		<link>http://www.bananadocet.com/index.php/2011/12/personalizzare-dinamicamente-il-motd-di-linux/</link>
		<comments>http://www.bananadocet.com/index.php/2011/12/personalizzare-dinamicamente-il-motd-di-linux/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 16:13:17 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[shell scripting]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=584</guid>
		<description><![CDATA[Ero stanco dei soliti motd (message of the day) di Linux che trovavo sui vari server, così ho deciso di implementare un piccolissimo script che mi permettesse di vedere qualcosa di diverso ad ogni login. Vediamo come fare. Questa procedura è stata provata su una debian, ma può essere riprodotta su qualunque sistema unix. Ci [...]]]></description>
			<content:encoded><![CDATA[<p>Ero stanco dei soliti motd (message of the day) di Linux che trovavo sui vari server, così ho deciso di implementare un piccolissimo script che mi permettesse di vedere qualcosa di diverso ad ogni login.</p>
<p>Vediamo come fare.</p>
<p>Questa procedura è stata provata su una debian, ma può essere riprodotta su qualunque sistema unix. Ci occorrerà installare i package cowsay e fortune (se preferiamo quelli con localizzazione italiana e se siamo &#8220;audaci&#8221; anche quelli un po più spinti)</p>
<p>Installiamo i pacchetti digitando da console:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">apt-get</span> <span class="kw2">install</span> cowsay fortunes-it fortunes-it-off</div>
</div>
<p>A questo punto creiamoci un semplicissimo script in bash che chiameremo mymotd e per l&#8217;esempio in questione lo posizioniamo sotto /usr/local/bin/.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0">#!/bin/bash</span><br />
<span class="re2">ALTER</span>=<span class="br0">&#40;</span><span class="sy0">`</span><span class="kw3">echo</span> <span class="re5">-n</span> \<span class="sy0">`/</span>usr<span class="sy0">/</span>games<span class="sy0">/</span>cowsay -l\<span class="sy0">`</span> <span class="sy0">|</span> <span class="kw2">awk</span> <span class="re5">-F</span><span class="st0">&quot;: &quot;</span> <span class="st_h">&#8216;{ print $2 }&#8217;</span><span class="sy0">`</span><span class="br0">&#41;</span><br />
<span class="re2">NUMBER</span>=$<span class="br0">&#91;</span> <span class="br0">&#40;</span><span class="re1">$RANDOM</span> <span class="sy0">%</span> <span class="co1">${#ALTER[@]}</span><span class="br0">&#41;</span> + <span class="nu0">1</span> <span class="br0">&#93;</span></div>
</div>
<p>/usr/games/cowsay -f ${ALTER[$NUMBER]} `/usr/games/fortune`</p>
<p>Diamo i privilegi di esecuzione allo script tramite:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">chmod</span> +x <span class="sy0">/</span>usr<span class="sy0">/</span>local<span class="sy0">/</span>bin<span class="sy0">/</span>mymotd</div>
</div>
<p>Per concludere, modifichiamo il file /etc/profile aggiungendo in fondo allo stesso il percorso dello script ed il gioco è fatto. Potrete ottenere risultati simili a quello riportato in figura:</p>
<p><a href="http://www.bananadocet.com/wp-content/uploads/2011/12/login.png"><img class="alignleft size-medium wp-image-587" title="motd login" src="http://www.bananadocet.com/wp-content/uploads/2011/12/login-300x205.png" alt="" width="300" height="205" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Buon divertimento &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/12/personalizzare-dinamicamente-il-motd-di-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aggiornare la cache DNS sotto Linux</title>
		<link>http://www.bananadocet.com/index.php/2011/12/aggiornare-la-cache-dns-sotto-linux/</link>
		<comments>http://www.bananadocet.com/index.php/2011/12/aggiornare-la-cache-dns-sotto-linux/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 13:23:12 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=579</guid>
		<description><![CDATA[Può capitare di aggiornare la propria zona DNS e malgrado tutto al ping risponde ancora l&#8217;indirizzo vecchio. Se controllando tramite il comando nslookup nomeDelServer vediamo che viene risolto con il nuovo indirizzo, allora abbiamo un problema di cache DNS. Per risolverlo sarà sufficiente fare il reload del demone nscd tramite il comando: /etc/init.d/nscd reload Pingando [...]]]></description>
			<content:encoded><![CDATA[<p>Può capitare di aggiornare la propria zona DNS e malgrado tutto al ping risponde ancora l&#8217;indirizzo vecchio.<br />
Se controllando tramite il comando <em>nslookup nomeDelServer</em> vediamo che viene risolto con il nuovo indirizzo, allora abbiamo un problema di cache DNS.<br />
Per risolverlo sarà sufficiente fare il reload del demone <em>nscd</em> tramite il comando:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>nscd reload</div>
</div>
<p>Pingando nuovamente il server, vedremo che verrà risolto correttamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/12/aggiornare-la-cache-dns-sotto-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script per allineare scadenza password tra 389-ds (LDAP) e Samba</title>
		<link>http://www.bananadocet.com/index.php/2011/09/script-per-allineare-scadenza-password-tra-389-ds-ldap-e-samba/</link>
		<comments>http://www.bananadocet.com/index.php/2011/09/script-per-allineare-scadenza-password-tra-389-ds-ldap-e-samba/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 08:04:56 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[Gestione Server]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[389-ds]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[domain controller]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nt4]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[shell scripting]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=569</guid>
		<description><![CDATA[Ho creato questo script per risolvere un problema che si è presentato durante la fase di cambio password da computer in un dominio NT4 gestito tramite samba-3 + LDAP (questo in realtà gestito tramite un 389-ds) su una CentOS 5.6. Sono state applicate le password policies su ldap e su samba. Ho notato che cambiando [...]]]></description>
			<content:encoded><![CDATA[<p>Ho creato questo script per risolvere un problema che si è presentato durante la fase di cambio password da computer in un dominio NT4 gestito tramite samba-3 + LDAP (questo in realtà gestito tramite un 389-ds) su una CentOS 5.6.</p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-8923523108033341";
/* 300_250 */
google_ad_slot = "5574097654";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Sono state applicate le password policies su ldap e su samba.<br />
Ho notato che cambiando la password direttamente dal client Windows, alcune applicazioni che si autenticano tramite LDAP, restituivano degli errori.</p>
<p>Indagando, su cosa cambiasse nella struttura LDAP dell&#8217;utente, ho trovato che quando si cambia la password dal client, un campo di LDAP, nello specifico <strong><em>passwordexpirationtime</em></strong>, veniva resettato al valore di default corrispondente al 1 Gennaio 1970.</p>
<p>Dal momento che non è prevedibile sapere quando qualcuno decide di cambiare la password, ho creato questo semplice ma efficace script di shell che viene lanciato via crontab.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0">#!/bin/bash</span><br />
<span class="kw3">source</span> ~<span class="sy0">/</span>.bash_profile<br />
<span class="re2">FILE_REPORT</span>=<span class="sy0">/</span>var<span class="sy0">/</span>log<span class="sy0">/</span>aggiusta_scadenza_pwd.log<br />
<span class="re2">ERROR_REPORT</span>=<span class="sy0">/</span>root<span class="sy0">/</span>tmp<span class="sy0">/</span>errori_scadenze_password.log</p>
<p><span class="re2">TEST</span>=<span class="nu0">0</span> <span class="co0"># 0 -&gt; ESEGUE &#8230;. 1 -&gt; TEST</span><br />
<span class="co0"># &nbsp;</span><br />
<span class="re2">GIORNI_DALLA_SCADENZA</span>=<span class="nu0">15</span><br />
<span class="co0"># Ripuliamo i nostri files di reportistica </span><br />
<span class="kw3">echo</span> <span class="st0">&quot;&quot;</span> <span class="sy0">&gt;</span> <span class="re1">$FILE_REPORT</span><br />
<span class="kw3">echo</span> <span class="st0">&quot;&quot;</span> <span class="sy0">&gt;</span> <span class="re1">$ERROR_REPORT</span><br />
<span class="kw1">function</span> convertiMeseNum<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Convertiamo il mese da letterale a numerico</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> $1 <span class="kw1">in</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;gen&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;01&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;feb&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;02&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;mar&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;03&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;apr&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;04&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;mag&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;05&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;giu&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;06&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;lug&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;07&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;ago&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;08&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;set&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;09&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;ott&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;10&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;nov&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;11&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;dic&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE</span>=<span class="st0">&quot;12&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">esac</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">function</span> allineaScadenzaPwd<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">TMP_LDIF_DIR</span>=<span class="sy0">/</span>root<span class="sy0">/</span>tmp<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re5">-d</span> <span class="re1">$TMP_FILE_DIR</span> <span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">mkdir</span> <span class="re5">-p</span> <span class="re1">$TMP_LDIF_DIR</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Estraiamo la data da samba e rendiamola utilizzabile dal comanda date</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">DATA_SCADENZA</span>=<span class="sy0">`</span>pdbedit <span class="re5">-v</span> $1 <span class="sy0">|</span> <span class="kw2">grep</span> <span class="st0">&quot;Password must change:&quot;</span> <span class="sy0">|</span> <span class="kw2">awk</span> <span class="re5">-F</span> <span class="st0">&quot;: &quot;</span> <span class="st_h">&#8216;{ print $2 }&#8217;</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;<span class="es2">$DATA_SCADENZA</span>&quot;</span> <span class="kw1">in</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Questo è il caso in cui l&#8217;utente non ha una scadenza della password</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;never&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;L&#8217;utente $1 NON ha scadenza password&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$ERROR_REPORT</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Nel caso in cui non è settata la data di scadenza </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;0&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;L&#8217;utente $1 NON HA IMPOSTATO una data di scadenza!! (Verificare) &quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$ERROR_REPORT</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Case di default</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">*</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE_SCADENZA</span>=<span class="st0">&quot;<span class="es5">`echo $DATA_SCADENZA | awk &#8216;{ print $3 }&#8217;`</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">GIORNO_SCADENZA</span>=<span class="st0">&quot;<span class="es5">`echo $DATA_SCADENZA | awk &#8216;{ print $2 }&#8217;`</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">ANNO_SCADENZA</span>=<span class="st0">&quot;<span class="es5">`echo $DATA_SCADENZA | awk &#8216;{ print $4 }&#8217;`</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">ORARIO_SCADENZA</span>=<span class="st0">&quot;<span class="es5">`echo $DATA_SCADENZA | awk &#8216;{ print $5 }&#8217;`</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Estraiamo il mese numerico dal mese di scadenza</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; convertiMeseNum <span class="re1">$MESE_SCADENZA</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Trasformiamo la data ottenuta in formato unix timestamp &nbsp; &nbsp; &nbsp; </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">SCADENZA_PASSWORD</span>=<span class="sy0">`</span><span class="kw2">date</span> <span class="re5">-d</span> <span class="st0">&quot;<span class="es2">$ANNO_SCADENZA</span>-<span class="es2">$MESE</span>-<span class="es2">$GIORNO_SCADENZA</span> <span class="es2">$ORARIO_SCADENZA</span>&quot;</span> <span class="st0">&quot;+%s&quot;</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Su LDAP il campo di segnalazione scadenza è impostato a 15 giorni prima della scadenza reale dell&#8217;account</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">SCADENZA_CALCOLATA</span>=<span class="sy0">`</span><span class="kw2">date</span> <span class="re5">-d</span> <span class="sy0">@</span>$<span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="re1">$SCADENZA_PASSWORD</span> &#8211; $<span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="re1">$GIORNI_DALLA_SCADENZA</span> <span class="sy0">*</span> 86400 <span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">`</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">MESE_SCADENZA_1</span>=<span class="st0">&quot;<span class="es5">`echo $SCADENZA_CALCOLATA | awk &#8216;{ print $2 }&#8217;`</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; convertiMeseNum <span class="re1">$MESE_SCADENZA_1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">GIORNO_SCADENZA_1</span>=<span class="st0">&quot;<span class="es5">`echo $SCADENZA_CALCOLATA | awk &#8216;{ print $3 }&#8217;`</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> $<span class="br0">&#40;</span><span class="br0">&#40;</span>GIORNO_SCADENZA_1<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re5">-lt</span> 10 <span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Trovato numero minore di 10 per utente $1 &#8230; converto</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">GIORNO_SCADENZA_1</span>=<span class="st0">&quot;0&quot;</span><span class="re1">$GIORNO_SCADENZA_1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># echo &quot;Giorno scadenza 1 -&gt; $GIORNO_SCADENZA_1&quot; &gt;&gt; $FILE_REPORT</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">ORARIO_SCADENZA_1</span>=<span class="st0">&quot;<span class="es5">`echo $SCADENZA_CALCOLATA | awk &#8216;{ print $4 }&#8217; | sed &#8216;s/://g&#8217;`</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">ANNO_SCADENZA_1</span>=<span class="st0">&quot;<span class="es5">`echo $SCADENZA_CALCOLATA | awk &#8216;{ print $6 }&#8217;`</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">SCADENZA_REALE</span>=<span class="re1">$ANNO_SCADENZA_1</span><span class="re1">$MESE</span><span class="re1">$GIORNO_SCADENZA_1</span><span class="re1">$ORARIO_SCADENZA_1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">SCADENZA_PASSWORD_Z</span>=<span class="re1">$SCADENZA_REALE</span><span class="st0">&quot;Z&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># echo $1 $DATA_SCADENZA $SCADENZA_CALCOLATA &gt;&gt; $FILE_REPORT</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re1">$SCADENZA_PASSWORD</span> <span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Modifico data di scadenza per $1 -&gt; <span class="es2">$DATA_SCADENZA</span> in data <span class="es2">$SCADENZA_PASSWORD_Z</span>&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$FILE_REPORT</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">TMP_LDAP_FILE</span>=<span class="re1">$TMP_LDIF_DIR</span><span class="sy0">/</span>$1.modify.ldif<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;dn: uid=$1,ou=People,dc=dominio&quot;</span> <span class="sy0">&gt;</span> <span class="re1">$TMP_LDAP_FILE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;changetype: modify&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$TMP_LDAP_FILE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;replace: passwordexpirationtime&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$TMP_LDAP_FILE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;passwordexpirationtime: <span class="es2">$SCADENZA_PASSWORD_Z</span>&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$TMP_LDAP_FILE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;-&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$TMP_LDAP_FILE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;changetype: modify&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$TMP_LDAP_FILE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;replace: passwordexpwarned&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$TMP_LDAP_FILE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;passwordexpwarned: 0&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$TMP_LDAP_FILE</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Se questa non è l&#8217;esecuzione di un test, applichiamo le modifiche a LDAP</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re1">$TEST</span> <span class="re5">-eq</span> 0 <span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span>ldapmodify <span class="re5">-x</span> <span class="re5">-Z</span> <span class="re5">-D</span> <span class="st0">&quot;cn=Directory Manager&quot;</span> <span class="re5">-w</span> lamiapassword <span class="re5">-f</span> <span class="re1">$TMP_LDAP_FILE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">esac</span><br />
<span class="br0">&#125;</span></p>
<p><span class="co0"># </span><br />
<span class="co0"># Eseguiamo una scansione sull&#8217;albero LDAP ed estraiamo tutti gli utenti di dominio attivi</span><br />
<span class="kw1">for</span> uid <span class="kw1">in</span> <span class="sy0">`</span>ldapsearch <span class="re5">-x</span> <span class="re5">-Z</span> <span class="re5">-b</span> <span class="re2">ou</span>=People,<span class="kw2">dc</span>=dominio <span class="st0">&quot;(&amp;(uid=*)(!(sambaAcctFlags=[DU*]))(passwordexpirationtime=19700101000000Z))&quot;</span> <span class="sy0">|</span> <span class="kw2">grep</span> uid: <span class="sy0">|</span> <span class="kw2">awk</span> <span class="re5">-F</span> <span class="st0">&quot;: &quot;</span> <span class="st_h">&#8216;{ print $2 }&#8217;</span><span class="sy0">`</span><br />
<span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; allineaScadenzaPwd <span class="re1">$uid</span><br />
<span class="kw1">done</span></div>
</div>
<p>L&#8217;esecuzione di questo script anche con qualche migliaio di utenti censiti, impiega pochi secondi.</p>
<p>Buon Divertimento.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/09/script-per-allineare-scadenza-password-tra-389-ds-ldap-e-samba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurare un syslog server con linux.</title>
		<link>http://www.bananadocet.com/index.php/2011/05/configurare-un-syslog-server-con-linux/</link>
		<comments>http://www.bananadocet.com/index.php/2011/05/configurare-un-syslog-server-con-linux/#comments</comments>
		<pubDate>Thu, 26 May 2011 08:44:48 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[Gestione Server]]></category>
		<category><![CDATA[Installazione Servizi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Test Drive]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[gestione centralizzata]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[log server]]></category>
		<category><![CDATA[loganalyzer]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[red-hat]]></category>
		<category><![CDATA[rsyslog]]></category>
		<category><![CDATA[syslog]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=542</guid>
		<description><![CDATA[Oggi vediamo come si può configurare in maniera molto semplice e veloce un syslog server che utilizzeremo per registrare tutti i log delle nostre macchine in un unico punto. Per il test abbiamo utilizzato una Debian Squeeze, ma la procedura è ripercorribile con qualunque altra distribuzione senza particolari differenze. Per la gestione del syslog, utilizzeremo [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi vediamo come si può configurare in maniera molto semplice e veloce un syslog server che utilizzeremo per registrare tutti i log delle nostre macchine in un unico punto.<br />
Per il test abbiamo utilizzato una Debian Squeeze, ma la procedura è ripercorribile con qualunque altra distribuzione senza particolari differenze.</p>
<p>Per la gestione del syslog, utilizzeremo rsyslog che di default viene installato su Debian e rispetto a syslogd presenta una serie di vantaggi, fra i quali la possibilità di lavorare sia in tcp che in udp, è compatibile con syslog, è più facile da configurare rispetto ad un syslog-ng, e possiamo agganciarlo ad un database mysql per una gestione maggiormente semplificata.</p>
<p>Una volta installato rsyslog ed il suo relativo supporto mysql (rsyslog-mysql sotto debian) procediamo alla configurazione del suo database. In questo il debian ci agevola chiedendoci tramite dbconfig-common di configurare l&#8217;utente e la password per l&#8217;utente rsyslog. Risponderemo si alla domanda se vogliamo configurare il database tramite dbconfig-common e forniremo:</p>
<ul>
<li>La password di root dell&#8217;utente mysql</li>
<li>La password per l&#8217;utente rsyslog</li>
</ul>
<p>Terminata la procedura avremo creato un database chiamato Syslog ed un utente <em>rsyslog</em> che sarà di fatto l&#8217;amministratore del database creato.</p>
<p>Procediamo adesso alla configurazione di rsyslog editando il file /etc/rsyslog.conf</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">vim</span> <span class="sy0">/</span>etc<span class="sy0">/</span>rsyslog.conf</div>
</div>
<p>Decommentiamo le righe relative a</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="re1">$ModLoad</span> imudp<br />
<span class="re1">$UDPServerRun</span> <span class="nu0">514</span></div>
</div>
<p>$ModLoad imtcp<br />
$InputTCPServerRun 514</p>
<p>Riavviamo il demone:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">service rsyslog restart</div>
</div>
<p>In questo modo abiliteremo sia la funzionalità del syslog tramite tcp che tramite udp.</p>
<p>Adesso per abilitare le funzionalità sui client esterni, sarà sufficiente modificare le impostazioni di syslog e indicare nel caso di syslog o rsyslog la sintassi è molto semplice e del tipo:</p>
<div class="codesnip-container" >facility.level destinazione</div>
<p>quindi, nello specifico, invieremo ad esempio tutti i log relativi agli accessi di una nostra macchina (x.x.x.x) al server (x.y.z.x)</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">auth,authpriv.<span class="sy0">*</span> <span class="sy0">@</span>x.y.z.x</div>
</div>
<p>Riavviamo il servizio di syslog sul client, e a questo punto vedremo arrivare sul server syslog i dati relativi agli accessi sul server da monitorare.<br />
In un prossimo post vedremo come configurare un client che utilizza syslog-ng.</p>
<p><script type="text/javascript">// <![CDATA[
google_ad_client = "ca-pub-8923523108033341";
/* 300_250 */
google_ad_slot = "5574097654";
google_ad_width = 300;
google_ad_height = 250;
// ]]&gt;</script><br />
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">// <![CDATA[</p>
<p>// ]]&gt;</script></p>
<h3>LogAnalyzer</h3>
<p>Il vantaggio di poter utilizzare un database per tracciare i dati di syslog è che possiamo anche utilizzare una comoda interfaccia web per gestirlo, e loganalyzer fa proprio al caso nostro.</p>
<p>Possiamo scaricare questa applicazione web, scritta in php, collegandoci a <a href="http://loganalyzer.adiscon.com/downloads" target="_blank">http://loganalyzer.adiscon.com/downloads</a>. Una volta scaricata, decomprimiamola in una cartella del nostro disco rigido e spostiamo il contenuto della cartella <em><strong>src</strong></em> in <em><strong>/var/www/loganalyzer</strong></em></p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">mv</span> <span class="sy0">/</span>usr<span class="sy0">/</span>local<span class="sy0">/</span>src<span class="sy0">/</span>loganalyzer-x.y<span class="sy0">/</span>src <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>loganalyzer</div>
</div>
<p>Adesso, prima di procedere con l&#8217;installazione di loganalyzer, creiamo un database per la gestione della configurazione di loganalyzer.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">mysql <span class="re5">-u</span> root <span class="re5">-p</span></div>
</div>
<p>Al prompt di mysql digitare:</p>
<div class="codesnip-container" >
<div class="sql codesnip" style="font-family:monospace;"><span class="kw1">CREATE</span> <span class="kw1">DATABASE</span> loganalyzer;<br />
<span class="kw1">CREATE</span> USER loganalyzer <span class="kw1">IDENTIFIED</span> <span class="kw1">BY</span> <span class="st0">&#8216;password&#8217;</span>;<br />
<span class="kw1">GRANT</span> <span class="kw1">ALL</span> PRIVILEGES <span class="kw1">ON</span> loganalyzer<span class="sy0">.*</span> <span class="kw1">TO</span> loganalyzer@localhost <span class="kw1">IDENTIFIED</span> <span class="kw1">BY</span> <span class="st0">&#8216;password&#8217;</span>;<br />
<span class="kw1">FLUSH</span> PRIVILEGES;</div>
</div>
<p>Passiamo adesso all&#8217;installazione del nostro loganalyzer.<br />
Spostiamoci dove abbiamo precendentemente decompresso i sorgenti di loganalyzer e dalla cartella contrib copiamo i file <em>configure.sh</em> e <em>secure.sh</em>.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">cp</span> <span class="sy0">/</span>usr<span class="sy0">/</span>local<span class="sy0">/</span>src<span class="sy0">/</span>loganalyzer-x.y<span class="sy0">/</span>contrib<span class="sy0">/</span>configure.sh <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>loganalyzer<span class="sy0">/</span><br />
<span class="kw2">cp</span> <span class="sy0">/</span>usr<span class="sy0">/</span>local<span class="sy0">/</span>src<span class="sy0">/</span>loganalyzer-x.y<span class="sy0">/</span>contrib<span class="sy0">/</span>secure.sh <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>loganalyzer<span class="sy0">/</span></div>
</div>
<p>e diamo i permessi di esecuzione ai suddetti files.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">chmod</span> +x <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>loganalyzer<span class="sy0">/*</span>.sh<br />
<span class="kw3">cd</span> <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>loganalyzer</div>
</div>
<p>e lanciamo</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">.<span class="sy0">/</span>configure.sh</div>
</div>
<p>Colleghiamoci all&#8217;indirizzo: <a href="http://ipdelserver/loganalyzer/">http://ipdelserver/loganalyzer/</a> e procediamo nella wizard di installazione associando quando richiesto le info relativo al database loganalyzer precedentemente creati, ed una volta giunti allo step 7 (configurazione dei log) bisogna dare le seguenti info:</p>
<ul>
<li>Name of the source: <em><strong>Un nome a nostra scelta</strong></em></li>
<li>Source type: <em><strong>Mysql Native</strong></em></li>
<li>Select View: <em><strong>Syslog Fields</strong></em></li>
<li>Table type: <em><strong>MonitorWare</strong></em></li>
<li>Database host: <em><strong>localhost</strong></em></li>
<li>Database name: <em><strong>Syslog</strong></em></li>
<li>Database tablename: <em><strong>SystemEvents</strong></em></li>
<li>Database user: <em><strong>rsyslog</strong></em></li>
<li>Password: <em><strong>passwordUtenteRsyslog</strong></em></li>
<li>Rnable Row Counting: <em><strong>No</strong></em></li>
</ul>
<p>Terminata l&#8217;installazione possiamo vedere adesso i nostri log collegandoci all&#8217;indirizzo http://server/loganalyzer.</p>
<p>Buon divertimento.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/05/configurare-un-syslog-server-con-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Failed to get lock on destination repos. Ecco come risolvere.</title>
		<link>http://www.bananadocet.com/index.php/2011/05/failed-to-get-lock-on-destination-repos-come-risolvere/</link>
		<comments>http://www.bananadocet.com/index.php/2011/05/failed-to-get-lock-on-destination-repos-come-risolvere/#comments</comments>
		<pubDate>Mon, 16 May 2011 14:51:26 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[Gestione Server]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[repository. svn]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[svnsync]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=533</guid>
		<description><![CDATA[Ecco lo scenario: Abbiamo due server subversion che si sincronizzando utilizzando svnsync, come abbiamo visto in un post precedente. Adesso vediamo che quando cerca di sincronizzarsi con il server remoto, compare questo messaggio: Failed to get lock on destination repos, currently held by &#8216;myserver:d27d5a7c-7d79-11e0-b5bd-a5a363c8406c&#8217; Molto probabilmente il problema è stato causato a seguito di una [...]]]></description>
			<content:encoded><![CDATA[<p>Ecco lo scenario:<br />
Abbiamo due server subversion che si sincronizzando utilizzando svnsync, come abbiamo visto in un post precedente.<br />
Adesso vediamo che quando cerca di sincronizzarsi con il server remoto, compare questo messaggio:</p>
<div class="codesnip-container" >Failed to get lock on destination repos, currently held by &#8216;myserver:d27d5a7c-7d79-11e0-b5bd-a5a363c8406c&#8217;</div>
<p>Molto probabilmente il problema è stato causato a seguito di una caduta di connessione con la macchina da sincronizzare.</p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-8923523108033341";
/* 300_250 */
google_ad_slot = "5574097654";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Non disperiamo! Ecco la procedura per risolvere il problema.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">svn</span> propdel <span class="kw2">svn</span>:sync-lock <span class="re5">&#8211;revprop</span> <span class="re5">-r</span> <span class="nu0">0</span> indirizzoTargetRepository</div>
</div>
<p>Ovviamente il paramentro indirizzoTargetRepository può essere di tipo svn:// oppure file:/// o anche https:// etc etc.</p>
<p>Non ci resta che attendere lanciare il comando per richiamare il sync, oppure aspettare il prossimo commit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/05/failed-to-get-lock-on-destination-repos-come-risolvere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cambiare editor di default in debian/ubuntu? Semplice!</title>
		<link>http://www.bananadocet.com/index.php/2011/05/cambiare-editor-di-default-in-debianubuntu-semplice/</link>
		<comments>http://www.bananadocet.com/index.php/2011/05/cambiare-editor-di-default-in-debianubuntu-semplice/#comments</comments>
		<pubDate>Mon, 09 May 2011 15:44:48 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[Gestione Server]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[terminale]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=525</guid>
		<description><![CDATA[Abbiamo visto qui come cambiare l&#8217;editor di default in gentoo, ed oggi vediamo un semplice trick per modificare l&#8217;editor di default in debian e derivate (Ubuntu &#038; Co.) Basta aprire una console e in Ubuntu digitare: sudo update-alternatives &#8211;config editor In debian come utente root update-alternatives &#8211;config editor Basterà digitare il numero corrispondente all&#8217;editor che [...]]]></description>
			<content:encoded><![CDATA[<p>Abbiamo visto <a href="http://www.bananadocet.com/index.php/2010/10/cambiare-editor-di-default-in-gentoo-linux/">qui</a> come cambiare l&#8217;editor di default in gentoo, ed oggi vediamo un semplice trick per modificare l&#8217;editor di default in debian e derivate (Ubuntu &#038; Co.)</p>
<p>Basta aprire una console e in Ubuntu digitare:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">sudo</span> update-alternatives <span class="re5">&#8211;config</span> editor</div>
</div>
<p>In debian come utente root </p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">update-alternatives <span class="re5">&#8211;config</span> editor</div>
</div>
<p>Basterà digitare il numero corrispondente all&#8217;editor che si vuole utilizzare ed il gioco è fatto.</p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-8923523108033341";
/* 300_250 */
google_ad_slot = "5574097654";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/05/cambiare-editor-di-default-in-debianubuntu-semplice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script per eseguire il backup dei nostri repository subversion (svn)</title>
		<link>http://www.bananadocet.com/index.php/2011/05/script-per-eseguire-il-backup-dei-nostri-repository-subversion-svn/</link>
		<comments>http://www.bananadocet.com/index.php/2011/05/script-per-eseguire-il-backup-dei-nostri-repository-subversion-svn/#comments</comments>
		<pubDate>Mon, 02 May 2011 12:57:03 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[Gestione Server]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mailx]]></category>
		<category><![CDATA[mutt]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=510</guid>
		<description><![CDATA[Oggi voglio postarvi un semplice script che possiamo utilizzare per fare il backup dei repository progetti che sono sotto controllo di versioning, e nello specifico che utilizzano svn. Questo script esegue un controllo su tutta la cartella dei repository di subversion ed esegue un backup di tutti quelli che sono repository validi, che hanno cioè [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi voglio postarvi un semplice script che possiamo utilizzare per fare il backup dei repository progetti che sono sotto controllo di versioning, e nello specifico che utilizzano svn.</p>
<p>Questo script esegue un controllo su tutta la cartella dei repository di subversion ed esegue un backup di  tutti quelli che sono repository validi, che hanno cioè un file <em>format</em> all&#8217;interno della cartella del repository. </p>
<p>Dopo di che fa il backup e li sposta in una directory di backup dove il dump viene poi compresso.<br />
Il perchè di questa modalità è semplice. Per subversion la copia fisica del file è deleteria, in quanto poi ci troveremmo costretti a fare un successivo check della struttura stessa del database del repository.</p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-8923523108033341";
/* 300_250 */
google_ad_slot = "5574097654";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0">#!/bin/bash</span><br />
<span class="co0"># svn-backup.sh </span></p>
<p><span class="co0"># Un file di log per il controllo delle operazioni</span><br />
<span class="re2">LOGFILE</span>=<span class="st0">&quot;/var/log//svn_backup.<span class="es5">`date +%Y-%m-%d`</span>.log&quot;</span></p>
<p>
<span class="co0"># Programma per mail </span><br />
<span class="co0"># e relativi parametri di configurazione</span><br />
<span class="re2">MAIL_PROGRAM</span>=<span class="st0">&quot;mailx&quot;</span><br />
<span class="re2">MAIL_DEST</span>=<span class="st0">&quot;mioindirizzo@mailserver.tld&quot;</span></p>
<p><span class="co0"># La directory dei nostri repository</span><br />
<span class="re2">DIR_SVN</span>=<span class="st0">&quot;/var/svn&quot;</span></p>
<p><span class="co0"># Una directory temporanea dove appoggiare una copia del repository</span><br />
<span class="re2">DIR_TMP</span>=<span class="st0">&quot;/home/backup/backup_svn/tmp&quot;</span></p>
<p><span class="co0"># La directory dove salvare il dump compresso del repository</span></p>
<p><span class="re2">DIR_BACKUP</span>=<span class="st0">&quot;/home/backup/backup_svn/svn&quot;</span></p>
<p><span class="co0"># Directory dove salveremo il tar con i nostri repository</span><br />
<span class="re2">DIR_DUMP_TAR</span>=<span class="st0">&quot;/home/backup/backup_svn&quot;</span></p>
<p><span class="co0"># Nome del nostro file di backup</span><br />
<span class="re2">BACKUP_FILE</span>=<span class="st0">&quot;<span class="es5">`date +%Y-%m-%d`</span>_backup_repos_svn.tar.gz&quot;</span></p>
<p><span class="co0"># Se non esiste il file di log, crealo</span><br />
<span class="kw1">if</span> <span class="br0">&#91;</span> <span class="sy0">!</span> <span class="re5">-e</span> <span class="st0">&quot;<span class="es2">$LOGFILE</span>&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; <span class="kw2">touch</span> <span class="re1">$LOGFILE</span><br />
<span class="kw1">fi</span></p>
<p><span class="kw1">for</span> i <span class="kw1">in</span> <span class="sy0">`</span><span class="kw2">find</span> <span class="re1">$DIR_SVN</span> <span class="re5">-name</span> <span class="st_h">&#8216;db&#8217;</span><span class="sy0">`</span><br />
<span class="kw1">do</span><br />
&nbsp; <span class="co0"># Con questa espressione ci facciamo restituire il percorso relativo del repository</span><br />
&nbsp; <span class="co0"># sul quale andremo a fare il dump dei dati </span><br />
&nbsp; <span class="co0"># NOTA.</span><br />
&nbsp; <span class="co0"># Per estrarre la substring la sintassi è</span><br />
&nbsp; <span class="co0"># ${stringa:punto_partenza:lunghezza}</span><br />
&nbsp; <span class="co0"># Per estrarre la lunghezza della stringa &nbsp; &nbsp; </span><br />
&nbsp; <span class="co0"># ${#stringa}</span><br />
&nbsp; <span class="re2">REPO</span>=<span class="sy0">`</span><span class="kw2">dirname</span> <span class="st0">&quot;<span class="es3">${i:${#DIR_SVN}</span>+1:<span class="es3">${#i}</span>-<span class="es3">${#DIR_SVN}</span>}&quot;</span><span class="sy0">`</span></p>
<p>&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;<span class="es5">`date +%Y-%m-%d`</span> <span class="es5">`date +%r`</span> : <span class="es2">$REPO</span>&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$LOGFILE</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;<span class="es5">`date +%Y-%m-%d`</span> <span class="es5">`date +%r`</span> : Creo la cartella <span class="es2">$REPO</span> nella dir temporanea &quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$LOGFILE</span></p>
<p>&nbsp; <span class="kw2">mkdir</span> <span class="re5">-p</span> <span class="re1">$DIR_TMP</span><span class="sy0">/</span>svn_backup<span class="sy0">/</span><span class="re1">$REPO</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;<span class="es5">`date +%Y-%m-%d`</span> <span class="es5">`date +%r`</span> : Creo la cartella del backup per il repository <span class="es2">$REPO</span>&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$LOGFILE</span><br />
&nbsp; <span class="kw2">mkdir</span> <span class="re5">-p</span> <span class="re1">$DIR_BACKUP</span><span class="sy0">/</span><span class="re1">$REPO</span></p>
<p>&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;<span class="es5">`date +%Y-%m-%d`</span> <span class="es5">`date +%r`</span> : Eseguo hotcopy del repository <span class="es2">$REPO</span>&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$LOGFILE</span></p>
<p>&nbsp; <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span><span class="kw2">svnadmin</span> hotcopy <span class="re1">$DIR_SVN</span><span class="sy0">/</span><span class="re1">$REPO</span> <span class="re1">$DIR_TMP</span><span class="sy0">/</span>svn_backup<span class="sy0">/</span><span class="re1">$REPO</span></p>
<p>&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;<span class="es5">`date +%Y-%m-%d`</span> <span class="es5">`date +%r`</span> : Eseguo il dump del repository <span class="es2">$REPO</span>&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$LOGFILE</span><br />
&nbsp; <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span><span class="kw2">svnadmin</span> dump <span class="st0">&quot;<span class="es2">$DIR_TMP</span>/svn_backup/<span class="es2">$REPO</span>&quot;</span> <span class="sy0">&gt;</span> <span class="st0">&quot;<span class="es2">$DIR_BACKUP</span>/<span class="es2">$REPO</span>/dump&quot;</span></p>
<p>&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;<span class="es5">`date +%Y-%m-%d`</span> <span class="es5">`date +%r`</span> : Rimuovo cartella temporanea&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$LOGFILE</span><br />
&nbsp; <span class="kw2">rm</span> <span class="re5">-Rf</span> <span class="re1">$DIR_TMP</span><span class="sy0">/</span>svn_backup<span class="sy0">/</span><span class="re1">$REPO</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$LOGFILE</span><br />
<span class="kw1">done</span>;</p>
<p><span class="co0"># Compressione dei dump</span><br />
<span class="kw1">for</span> i <span class="kw1">in</span> <span class="sy0">`</span><span class="kw2">find</span> <span class="re1">$DIR_BACKUP</span> <span class="re5">-name</span> <span class="st_h">&#8216;dump&#8217;</span><span class="sy0">`</span><br />
<span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">bzip2</span> <span class="re1">$i</span><br />
<span class="kw1">done</span></p>
<p><span class="kw2">tar</span> <span class="re5">-zcf</span> <span class="re1">$DIR_DUMP_TAR</span><span class="sy0">/</span><span class="re1">$BACKUP_FILE</span> <span class="re1">$DIR_BACKUP</span></p>
<p><span class="co0"># Ripuliamo i dump &#8230; </span><br />
<span class="kw2">rm</span> <span class="re5">-Rf</span> <span class="re1">$DIR_BACKUP</span><span class="sy0">/*</span></p>
<p><span class="kw3">echo</span> <span class="st0">&quot;<span class="es5">`date +%Y-%m-%d-%T`</span> &#8230; Fine&quot;</span> <span class="sy0">&gt;&gt;</span> <span class="re1">$LOGFILE</span></p>
<p><span class="kw1">case</span> <span class="re1">$MAIL_PROG</span> <span class="kw1">in</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; mailx<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># Su gentoo va decommentata la seguente riga</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uuenview <span class="re1">$LOGFILE</span> <span class="sy0">|</span> mailx <span class="re5">-s</span> <span class="st0">&quot;Log Backup repository svn&quot;</span> <span class="re1">$MAIL_DEST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># &nbsp; &nbsp; &nbsp; Questa invece va su debian</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># &nbsp; &nbsp; &nbsp; uuencode $LOGFILE $LOGFILE | mailx -s &quot;Log Backup repository svn&quot; $MAIL_DEST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; mutt<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="sy0">|</span> mutt <span class="re5">-a</span> <span class="re1">$LOGFILE</span> <span class="re5">-s</span> <span class="st0">&quot;Log Backup repository svn&quot;</span> <span class="re1">$MAIL_DEST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
<span class="kw1">esac</span></div>
</div>
<p>Carichiamo il nostro script in crontab ed il nostro backup è pronto!</p>
<p>Questo è tutto per ora.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/05/script-per-eseguire-il-backup-dei-nostri-repository-subversion-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come inviare un allegato da console utilizzando mailx</title>
		<link>http://www.bananadocet.com/index.php/2011/04/come-inviare-un-allegato-da-console-utilizzando-mailx/</link>
		<comments>http://www.bananadocet.com/index.php/2011/04/come-inviare-un-allegato-da-console-utilizzando-mailx/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 11:22:21 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[allegato]]></category>
		<category><![CDATA[attachment]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mailx]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[uuencode]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=504</guid>
		<description><![CDATA[Oggi vediamo come sia possibile utilizzare il comando mailx di linux in modo tale che ci venga inoltrato un allegato. La procedura è relativamente semplice (una volta che la si conosce ) Allo scopo dovremo avere installato sulla macchina sia mailx (uno standard in praticamente tutte le distro) che uuencode che fa parte del pacchetto [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi vediamo come sia possibile utilizzare il comando mailx di linux in modo tale che ci venga inoltrato un allegato.</p>
<p>La procedura è relativamente semplice (una volta che la si conosce <img src='http://www.bananadocet.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )</p>
<p>Allo scopo dovremo avere installato sulla macchina sia mailx (uno standard in praticamente tutte le distro) che uuencode che fa parte del pacchetto uudeview (disponibile <a href="http://www.fpx.de/fp/Software/UUDeview/">qui</a>).</p>
<p>A questo punto:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">uuencode miofile.ext miofile.ext <span class="sy0">|</span> mailx <span class="re5">-s</span> <span class="st0">&quot;Mail di prova&quot;</span> indirizzo<span class="sy0">@</span>email.tld</div>
</div>
<p>In pratica la sintassi utilizzata da uuencode è la seguente:</p>
<ul>
<li>Il primo parametro è il nome del nostro file</li>
<li>Il secondo parametro è il nome che il nostro file avrà nella mail</li>
</ul>
<p>A questo punto se al nostro messaggio volessimo associare del testo, la cosa è abbastanza semplice.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="br0">&#40;</span><span class="kw2">cat</span> miomessaggio.txt; uuencode miofile.ext miofile.ext<span class="br0">&#41;</span> <span class="sy0">|</span> mailx <span class="re5">-s</span> <span class="st0">&quot;Mail di prova&quot;</span> indirizzo<span class="sy0">@</span>email.tld</div>
</div>
<p>Fra le limitazioni di quest&#8217;approccio, vi è che se avete l&#8217;email su un sistema che scarta le email per domini che non riesce a risolvere, non riceverete l&#8217;email.</p>
<p>In questo caso, un approccio più semplice lo fornisce il pacchetto sendEmail.pl.</p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-8923523108033341";
/* 300_250 */
google_ad_slot = "5574097654";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/04/come-inviare-un-allegato-da-console-utilizzando-mailx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian Squeeze &#8230; errori in fase di upgrade di mysql?? Ecco la soluzione!!</title>
		<link>http://www.bananadocet.com/index.php/2011/04/debian-squeeze-errori-in-fase-di-upgrade-di-mysql-ecco-la-soluzione/</link>
		<comments>http://www.bananadocet.com/index.php/2011/04/debian-squeeze-errori-in-fase-di-upgrade-di-mysql-ecco-la-soluzione/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 14:37:35 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=498</guid>
		<description><![CDATA[Abbiamo eseguito un dist-upgrade da lenny a squeeze &#8230; e tutto sembra essere andato per il meglio, tranne per il fatto che mysql è rimasto alla versione precedente. Ovviamente alcuni software, come php ci dicono che stiamo usando le librerie compilate per mysql-5.1, ma la versione del server installata è ancora la 5.0. Quindi?? Facciamo [...]]]></description>
			<content:encoded><![CDATA[<p>Abbiamo eseguito un dist-upgrade da lenny a squeeze &#8230; e tutto sembra essere andato per il meglio, tranne per il fatto che mysql è rimasto alla versione precedente.</p>
<p>Ovviamente alcuni software, come php ci dicono che stiamo usando le librerie compilate per mysql-5.1, ma la versione del server installata è ancora la 5.0.</p>
<p>Quindi??<br />
Facciamo l&#8217;update di mysql-server!!<br />
Come prima cosa un backup del database non fa mai male tramite:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">mysqldump <span class="re5">-A</span> <span class="re5">&#8211;user</span>=root <span class="re5">&#8211;password</span>=miapassword <span class="re5">&#8211;add-drop-database</span> <span class="re5">&#8211;add-drop-table</span> <span class="sy0">&gt;</span> fulldump.sql</div>
</div>
<p>Adesso rimuoviamo i pacchetti della versione precedente.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>mysql stop<br />
<span class="kw2">apt-get</span> remove mysql-server mysql-client<br />
<span class="kw2">apt-get</span> <span class="kw2">install</span> mysql-server mysql-client</div>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-8923523108033341";
/* 300_250 */
google_ad_slot = "5574097654";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Ma a questo punto ahimè, l&#8217;upgrade fallisce miseramente &#8230; perchè?</p>
<p>Il perchè è semplice!!<br />
Se apriamo il file my.cnf troviamo:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">vim</span> <span class="sy0">/</span>etc<span class="sy0">/</span>mysql<span class="sy0">/</span>my.cnf</div>
</div>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0">#</span><br />
<span class="co0"># * BerkeleyDB</span><br />
<span class="co0">#</span><br />
<span class="co0"># Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.</span><br />
skip-bdb</div>
</div>
<p>Commentiamo quindi la voce skip-bdb di modo che il risultato sia</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0">#</span><br />
<span class="co0"># * BerkeleyDB</span><br />
<span class="co0">#</span><br />
<span class="co0"># Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.</span><br />
<span class="co0"># &nbsp;skip-bdb</span></div>
</div>
<p>Rilanciamo </p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">apt-get</span> <span class="kw2">install</span> mysql-server mysql-client</div>
</div>
<p>E ritorniamo a sorridere &#8230; <img src='http://www.bananadocet.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
Un&#8217;ultima cosa &#8230; l&#8217;upgrade dalla versione 5.0 alla versione 5.1 non va presa alla leggera. Leggete prima <a href="http://dev.mysql.com/doc/refman/5.1/en/upgrading-from-previous-series.html" target="_blank">qui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/04/debian-squeeze-errori-in-fase-di-upgrade-di-mysql-ecco-la-soluzione/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creare delle esclusioni dai filtri di dansguardian.</title>
		<link>http://www.bananadocet.com/index.php/2011/04/creare-delle-esclusioni-dai-filtri-di-dansguardian/</link>
		<comments>http://www.bananadocet.com/index.php/2011/04/creare-delle-esclusioni-dai-filtri-di-dansguardian/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 10:49:48 +0000</pubDate>
		<dc:creator>Gioachino Bartolotta</dc:creator>
				<category><![CDATA[Gestione Server]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[configurazione]]></category>
		<category><![CDATA[dansguardian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[proxy server]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[squid3]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.bananadocet.com/?p=479</guid>
		<description><![CDATA[Può capitare che dopo aver configurato il proxy server, nel caso visto in precedenza era Squid3, e configurato dansguardian per settare i filtri di navigazione, ci venga chiesto, o abbiamo la necessità di creare un manipolo di utenti che devono essere esclusi dai filtri e devono poter andare ovunque e comunque. La soluzione offerta da [...]]]></description>
			<content:encoded><![CDATA[<p>Può capitare che dopo aver configurato il proxy server, nel caso visto in precedenza era Squid3, e configurato dansguardian per settare i filtri di navigazione, ci venga chiesto, o abbiamo la necessità di creare un manipolo di utenti che devono essere esclusi dai filtri e devono poter andare ovunque e comunque.</p>
<p>La soluzione offerta da dansguardian, è di una semplicità disarmante.</p>
<p>Ci basta copiare il file con i filtri di defaullt e cambiare il valore di un parametro.</p>
<p>In pratica, copiamo il file dansguardanf1.conf</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">cp</span> <span class="sy0">/</span>etc<span class="sy0">/</span>dansguardian<span class="sy0">/</span>dansguardianf1.conf <span class="sy0">/</span>etc<span class="sy0">/</span>dansguardian<span class="sy0">/</span>danguardianf2.conf</div>
</div>
<p>Adesso apriamo il file copiato e modifichiamolo:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">vim</span> <span class="sy0">/</span>etc<span class="sy0">/</span>dansguardian<span class="sy0">/</span>dansguardianf2.conf</div>
</div>
<p>In cima al file troviamo la spiegazione di alcuni parametri, ma quello che interessa principalmente a noi da modificare è il parametro <em>groupmode</em> che nello specifico accetta questi 3 valori:</p>
<ul>
<li>0 = banned (utenti a cui è impedita la navigazione)</li>
<li>1 = filtered (gli utenti standard, appartengono a questa categoria, o comunque se si creano gruppi diversi, si devono assegnare a questa categoria</li>
<li>2 = unfiltered (Queste sono le eccezioni che non subiscono il filtraggio di dansguardian)</li>
</ul>
<p>Noi quindi non faremo altro che modificare questa direttiva.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">groupmode = <span class="nu0">2</span></div>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-8923523108033341";
/* 300_250 */
google_ad_slot = "5574097654";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>A questo punto dobbiamo modificare un altro valore all&#8217;interno di dansguardian.conf</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">vim</span> <span class="sy0">/</span>etc<span class="sy0">/</span>dansguardian<span class="sy0">/</span>dansguardian.conf</div>
</div>
<p>e modifichiamo </p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0"># Nel caso specifico in cui abbiamo 2 gruppi di filtraggio.</span><br />
filtergroups = <span class="nu0">2</span><br />
filtergrouplist = <span class="st_h">&#8216;/etc/dansguardian/lists/filtergroupslist&#8217;</span></div>
</div>
<p>Adesso dobbiamo configurare gli utenti che possono accedere a questo filtro.<br />
Facciamo quindi </p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">vim</span> <span class="sy0">/</span>etc<span class="sy0">/</span>dansguardian<span class="sy0">/</span>lists<span class="sy0">/</span>filtergrouplist</div>
</div>
<p>e all&#8217;interno del file la sintassi da utilizzare è la seguente:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="re2">nomeUtente</span>=filter2<br />
<span class="re2">altroUtente</span>=filter2</div>
</div>
<p>Riavviamo il servizio, ed il gioco è fatto.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">service dansguardian restart</div>
</div>
<p>o in alternativa:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>dansguardian restart</div>
</div>
<p>Come abbiamo visto, aggiungere filtri ulteriori, permette con estrema semplicità di incrementare le nostre possibilità di customizzazione.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bananadocet.com/index.php/2011/04/creare-delle-esclusioni-dai-filtri-di-dansguardian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

