<?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>Luigi Molinaro Blog</title>
	<atom:link href="http://blog.luigimolinaro.it/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.luigimolinaro.it</link>
	<description>Make the complex more Complex</description>
	<lastBuildDate>Fri, 16 Dec 2011 17:30:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Bash script cambio password</title>
		<link>http://blog.luigimolinaro.it/2011/12/bash-script-cambio-passoword/</link>
		<comments>http://blog.luigimolinaro.it/2011/12/bash-script-cambio-passoword/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 17:13:34 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=237</guid>
		<description><![CDATA[Personalmente me lo sono scrittp per cabiare qualcosa come 54 password ftp. Non volendolo fare a mano sono ricorso al solito bash Gli utenti nei sistemi Linux sono contenuti in questo file &#160;/etc/passwd e si presentano in questo modo : &#8230; <a href="http://blog.luigimolinaro.it/2011/12/bash-script-cambio-passoword/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Personalmente me lo sono scrittp per cabiare qualcosa come 54 password ftp.</p>
<p>Non volendolo fare a mano sono ricorso al solito bash</p>
<p>Gli utenti nei sistemi Linux sono contenuti in questo file &nbsp;/etc/passwd<br />
e si presentano in questo modo :<br />
<pre>test.it:x:526:526:test.it:/home/test.it:/bin/sh</pre><br />
Per prima cosa elimino tutto quello che non mi serve :<br />
<pre>awk -F":" '{ print $1 }' /etc/passwd > user.txt</pre><br />
ed ottengo quindi solo lo user :<br />
<pre>test.it</pre><br />
<span style="font-family: 'Courier 10 Pitch', Courier, monospace; font-size: x-small;"><span style="font-family: 'Courier 10 Pitch', Courier, monospace; font-size: x-small;">A questo punto ecco che entra in azione lo script vero e proprio :</span></span></p>
<address>#!/bin/bash</p>
<p>function randpass<br />
{<br />
echo `&lt;/dev/urandom tr -dc A-Za-z0-9 | head -c8`<br />
}</p>
<p>for i in `more ftp_ok`<br />
do<br />
p=`randpass`<br />
echo $i $p</p>
<p>echo $p | passwd &#8211;stdin $i<br />
done</p>
<p><span class="Apple-style-span" style="font-family: 'Courier 10 Pitch', Courier, monospace; line-height: 16px; font-size: x-small;">Il gioco è fatto !</span></address>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/12/bash-script-cambio-passoword/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allineare mysql slave</title>
		<link>http://blog.luigimolinaro.it/2011/11/allineare-mysql-slave/</link>
		<comments>http://blog.luigimolinaro.it/2011/11/allineare-mysql-slave/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 14:20:03 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=235</guid>
		<description><![CDATA[Cosa succede se si fa una bella insert sul nostro database mysql slave? Due cose : Lo slave server si disallinea Il sistemista bestemmia&#160; Per controllore lo stato dello slave bisogna lanciare dallo slave : mysql&#62; show slave status\G&#160; Lo &#8230; <a href="http://blog.luigimolinaro.it/2011/11/allineare-mysql-slave/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cosa succede se si fa una bella insert sul nostro database mysql slave?<br />
Due cose :</p>
<ol>
<li>Lo slave server si disallinea</li>
<li>Il sistemista bestemmia&nbsp;</li>
</ol>
<address>Per controllore lo stato dello slave bisogna lanciare dallo slave :</address>
<p><pre>
mysql&gt; show slave status\G&nbsp;</pre></p>
<address>
<em>Lo Slave utilizza piu&#8217; thread. Il primo e&#8217; una connessione remota al Master ed ha il compito di raccogliere i dati dal bin-log (BinLog Dump) ed e&#8217; sempre attivo. Gli altri thread sono locali ed hanno il compito di ricevere il contenuto del bin-log (Slave I/O) e di applicarlo alla base dati (Slave SQL). In caso d&#8217;errore nell&#8217;inserimento dei dati il thread Slave SQL si interrompe mentre lo Slave I/O continua a raccogliere i dati dal Master. Con&nbsp;<strong>show slave status\G</strong>&nbsp;si ottiene l&#8217;indicazione dell&#8217;errore occorso; una volta corretto il problema la replicazione riprende dal punto in cui si era interrotta applicando il relay-log.&nbsp;</em></address>
<p>Per risolvere il problema numero 1 bisogna seguire questa facile guida :</p>
<p>1. Stoppare sugli SLAVE SERVER il servizio di replica :<br />
<pre>mysql&gt; stop slave;</pre><br />
2. Lokkare le tabelle sul MYSQL MASTER (occhio a non uscire da mysql altrimenti questo comando viene flushato)<br />
<pre>mysql&gt; FLUSH TABLES WITH READ LOCK;</pre><br />
3. Effettuare un dump completo e copiarli sullo/i SLAVE/s :<br />
<pre>mysqldump --all-database &gt; <em>databases</em>.sql -u root -p&nbsp;</pre><br />
4. Restore DB sugli SLAVE<br />
<pre>mysql -u root -p&nbsp;<em>databases</em>.sql&nbsp;</pre><br />
5. Controllare lo stato del MYSQL MASTER per vedere fino a che punto è arrivata il transaction bin log : (in un altra sessione ssh, vedi punto 2)<br />
<pre>mysql&gt; show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| <span style="color: #ff0000;"><strong>mysql-bin.000059</strong></span> | <span style="color: #ff0000;"><strong>17908642</strong></span> |              |                  |
+------------------+----------+--------------+------------------+</pre><br />
6. Riattivare il MYSQL SLAVE<br />
<pre>CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000059', MASTER_LOG_POS = 17148864;</pre><br />
7. Riattivare lo slave<br />
<pre>mysql&gt; start slave;</pre><br />
8. Riattivare il MYSQL MASTER in scrittura<br />
<pre>UNLOCK TABLES;</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/11/allineare-mysql-slave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitorare coda postfix</title>
		<link>http://blog.luigimolinaro.it/2011/11/monitorare-coda-postfix/</link>
		<comments>http://blog.luigimolinaro.it/2011/11/monitorare-coda-postfix/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 11:18:01 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=232</guid>
		<description><![CDATA[Un semplice script bash che controlla la coda di postix e ci avverte se supera un determinato limite : #!/bin/bashlimit=50;notifyemail=luigi.molinaro@gmail.com;servername=$&#40;hostname&#41;;&#160;queue_p=$&#40;postqueue -p &#124; grep Request &#124; awk '{print $5}'&#41;;&#160;if &#91; $queue_p -ge $limit &#93; ; then&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo &#34;Dear Server admin,&#160;We have $limit &#8230; <a href="http://blog.luigimolinaro.it/2011/11/monitorare-coda-postfix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Un semplice script bash che controlla la coda di postix e ci avverte se supera un determinato limite :</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #666666; font-style: italic;">#!/bin/bash</span></li><li><span style="color: #007800;">limit</span>=<span style="color: #000000;">50</span>;</li><li><span style="color: #007800;">notifyemail</span>=luigi.molinaro<span style="color: #000000; font-weight: bold;">@</span>gmail.com;</li><li><span style="color: #007800;">servername</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">hostname</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;</li><li>&nbsp;</li><li><span style="color: #007800;">queue_p</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>postqueue <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> Request <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $5}'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;</li><li>&nbsp;</li><li><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$queue_p</span> <span style="color: #660033;">-ge</span> <span style="color: #007800;">$limit</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;</span></li><li><span style="color: #ff0000;">Dear Server admin,</span></li><li>&nbsp;</li><li><span style="color: #ff0000;">We have <span style="color: #007800;">$limit</span> in local mailqueue.</span></li><li><span style="color: #ff0000;">&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> mail <span style="color: #660033;">-s</span> <span style="color: #ff0000;">&quot;Mailqueue limit exceeding - <span style="color: #007800;">$servername</span>&quot;</span> <span style="color: #007800;">$notifyemail</span></li><li>&nbsp;</li><li><span style="color: #000000; font-weight: bold;">fi</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/11/monitorare-coda-postfix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proteggi SSH con SSHguard</title>
		<link>http://blog.luigimolinaro.it/2011/11/proteggi-ssh-con-sshguard/</link>
		<comments>http://blog.luigimolinaro.it/2011/11/proteggi-ssh-con-sshguard/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 14:23:13 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=230</guid>
		<description><![CDATA[&#160;sshguard&#160;, è scritto in C, quindi usa meno memoria e CPU durante l’esecuzione pur ottenendo gli stessi risultati. COSA FA SSHGUARD ? La versione corta è: riceve i messaggi di log, rileva quando un servizio in rete è attaccato basandosi &#8230; <a href="http://blog.luigimolinaro.it/2011/11/proteggi-ssh-con-sshguard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<a href="http://www.sshguard.net/">sshguard&nbsp;</a>, è scritto in C, quindi usa meno memoria e CPU durante l’esecuzione pur ottenendo gli stessi risultati.</p>
<h2>COSA FA SSHGUARD ?</h2>
<p>La versione corta è: riceve i messaggi di log, rileva quando un servizio in rete è attaccato basandosi su di essi, e blocca l’indirizzo di chi sta attaccando, dopo qualche tempo, rimuove questo blocco.</p>
<p>La versione completa è: sshguard gira su una macchina come un piccolo demone, e riceve i messaggi di log (in diversi modi, ad esempio da syslog). Quando si determina che l’indirizzo X ha fatto qualcosa di male al servizio Y, attiva una regola nel firewall della macchina (uno dei tanti supportati) per il blocco di X.<br />
Sshguard mantiene X bloccato per qualche tempo, poi lo rilascia automaticamente.</p>
<p>Si prega di notare che, nonostante il suo nome sshguard rileva di base gli attacchi per molti servizi, non solo SSH, ma anche diversi demoni ftpds, Exim e Dovecot. E’ in grado di operare con tutti i principali sistemi di firewalling, e fornisce supporto per IPv6, whitelist, sospensione, e registra i messaggi di autenticazione.</p>
<h2>Installazione</h2>
<p>Sshguard è distribuito sotto la permissiva licenza BSD: è possibile utilizzare, modificare e ridistribuire il software, a proprio rischio, per qualsiasi uso, anche commerciale, a condizione di conservare l’avviso di copyright originale che si trova al suo interno. Il software è distribuito nel repository principale delle più utilizzate distribuzioni GNU/Linux e per alcuni sistemi *BSD, ma è anche possibile scaricare i sorgenti dalla loro&nbsp;<a href="http://www.sshguard.net/download/">pagina di downlaod&nbsp;</a>.</p>
<p>Per installarlo su Debian ( o altre distribuzioni che utilizzano i .deb come Ubuntu) lanciate da un terminale:</p>
<div>
<div>
<pre>sudo aptitude install sshguard</pre></p>
<h2>Configurazione</h2>
</div>
</div>
<p>Sshguard si interfaccia al sistema in due punti:</p>
<ul>
<li>il sistema di logging (come sshguard riceve i messaggi di log per il monitoraggio)</li>
<li>il firewall (come sshguard blocca gli indirizzi indesiderati )</li>
</ul>
<p>A partire dalla versione 1.5, sshguard viene fornito con il&nbsp;<a href="http://www.sshguard.net/docs/setup/getlogs/log-sucker/">Log Sucker&nbsp;</a>. Con il Log Sucker, SSHGuard recupera le voci dai log in modo proattivo, e gestisce in modo trasparente eventi come la rotazione dei file di log e la scomparsa e riapparizione dei file.</p>
<p>Nella pagina della<a href="http://www.sshguard.net/docs/setup/">&nbsp;documentazione ufficiale&nbsp;</a>ci sono delle istruzioni per molti firewall differenti, io seguirò le istruzioni per netfilter/iptables.</p>
<p>sshguard non ha un file di configurazione. Tutta la configurazione che deve essere fatta è la creazione di una chain chiamata “sshguard” nella catena di INPUT di iptables dove sshguard inserisce automaticamente le regole per i pacchetti provenienti da host malevoli:</p>
<div>
<div>
<pre>#Per il supporto a IPv4 :
iptables -N sshguard
# Se volete anche il supporto a IPv6 :
ip6tables -N sshguard</pre>
</div>
</div>
<p>Ora aggiornare la catena di INPUT in modo che passi tutto il traffico che si desidera a sshguard, specificare con – dport tutte le porte dei servizi che si desidera proteggere con sshguard. Se si desidera impedire agli aggressori di fare tutto il traffico verso l’host, rimuovere completamente l’opzione:</p>
<div>
<div>
<pre>#Blocca tutto il traffico:
iptables -A INPUT -j sshguard
ip6tables -A INPUT -j sshguard
&nbsp;
        -- o --
&nbsp;
#Blocca gli attaccanti solo per i servizi SSH, FTP, POP, IMAP  (usa il modulo "multiport")
iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard
ip6tables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard</pre>
</div>
</div>
<p>Se al momento non usate iptables e volete solo avere sshguard installato e funzionante senza alcun ulteriore impatto sul sistema, questi comandi creano e salvano una configurazione iptables che non fa assolutamente nulla se non permettere ad sshguard di funzionare:</p>
<div>
<div>
<pre># iptables -F
# iptables -X
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -N sshguard
# iptables -A INPUT -j sshguard
# /etc/rc.d/iptables save</pre>
</div>
</div>
<h2>Conclusioni</h2>
<p>E questo è tutto quello che dovete fare per avere una installazione di base di sshguard installata e funzionante, vi aiuterà ad avere il vostro ssh, ftp ed altri demoni un po’ più sicuro.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/11/proteggi-ssh-con-sshguard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creazione automatica sito web apache con bash</title>
		<link>http://blog.luigimolinaro.it/2011/10/creazione-automatica-sito-web-apache-con-bash/</link>
		<comments>http://blog.luigimolinaro.it/2011/10/creazione-automatica-sito-web-apache-con-bash/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 11:18:11 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=225</guid>
		<description><![CDATA[Ecco un semplice script che crea website, alias, directory automaticamente tramite bash&#160; #!/bin/bash&#160;echo &#34;Inserisci dominio (es: example.com):&#34;;read domain;echo &#34;&#34; echo &#34;Inserisci Alias (es: www.example.com):&#34;;read domain_alias;echo &#34;&#34; &#160;### Check $domain esisteif ! grep &#34;${domain}&#34; /etc/apache2/sites-available/${domain}.conf &#62;&#62; /dev/null; then&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo &#34;${domain} will be &#8230; <a href="http://blog.luigimolinaro.it/2011/10/creazione-automatica-sito-web-apache-con-bash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ecco un semplice script che crea website, alias, directory automaticamente tramite bash&nbsp;</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #666666; font-style: italic;">#!/bin/bash</span></li><li>&nbsp;</li><li><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Inserisci dominio (es: example.com):&quot;</span>;</li><li><span style="color: #c20cb9; font-weight: bold;">read</span> domain;</li><li><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span> </li><li><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Inserisci Alias (es: www.example.com):&quot;</span>;</li><li><span style="color: #c20cb9; font-weight: bold;">read</span> domain_alias;</li><li><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span> </li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;">### Check $domain esiste</span></li><li><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${domain}</span>&quot;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>sites-available<span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${domain}</span>.conf <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null; <span style="color: #000000; font-weight: bold;">then</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${domain}</span> will be created&quot;</span> </li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${domain}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>htdocs,logs,cgi-bin<span style="color: #7a0874; font-weight: bold;">&#125;</span>;</li><li> <span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> www-data:www-data <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${domain}</span><span style="color: #000000; font-weight: bold;">/</span></li><li>&nbsp;</li><li> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot; </span></li><li><span style="color: #ff0000;">## Automatic generation from Genesi on <span style="color: #780078;">`eval date +%d.%m.%Y`</span></span></li><li><span style="color: #ff0000;">## <span style="color: #007800;">${domain}</span></span></li><li><span style="color: #ff0000;">&lt;VirtualHost *:80&gt;</span></li><li><span style="color: #ff0000;"> ServerName <span style="color: #007800;">${domain}</span></span></li><li><span style="color: #ff0000;"> ServerAlias <span style="color: #007800;">${domain_alias}</span></span></li><li><span style="color: #ff0000;"> DocumentRoot /var/www/<span style="color: #007800;">${domain}</span>/htdocs</span></li><li><span style="color: #ff0000;"> ServerAdmin tech@neen.it</span></li><li>&nbsp;</li><li><span style="color: #ff0000;"> ErrorLog /var/www/<span style="color: #007800;">${domain}</span>/logs/error.log</span></li><li><span style="color: #ff0000;"> CustomLog /var/www/<span style="color: #007800;">${domain}</span>/logs/access.log combined</span></li><li><span style="color: #ff0000;">&lt;/VirtualHost&gt;</span></li><li>&nbsp;</li><li><span style="color: #ff0000;">&lt;Directory /var/www/<span style="color: #007800;">${domain}</span>/htdocs&gt;</span></li><li><span style="color: #ff0000;"> Options FollowSymLinks MultiViews</span></li><li><span style="color: #ff0000;"> AllowOverride All</span></li><li><span style="color: #ff0000;"> Order allow,deny</span></li><li><span style="color: #ff0000;"> allow from all</span></li><li><span style="color: #ff0000;">&lt;/Directory&gt;</span></li><li><span style="color: #ff0000;"> &quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>sites-available<span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${domain}</span>.conf</li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Testing configuration&quot;</span> </li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #c20cb9; font-weight: bold;">apache2ctl configtest</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a2ensite <span style="color: #800000;">${domain}</span>.conf </li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 reload</li><li><span style="color: #000000; font-weight: bold;">else</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${domain}</span> Dominio già esistente&quot;</span> </li><li><span style="color: #000000; font-weight: bold;">fi</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/10/creazione-automatica-sito-web-apache-con-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mediawiki FCKeditor</title>
		<link>http://blog.luigimolinaro.it/2011/10/mediawiki-fckeditor/</link>
		<comments>http://blog.luigimolinaro.it/2011/10/mediawiki-fckeditor/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 09:45:25 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Varie]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=223</guid>
		<description><![CDATA[Dalla versione di MediaWiki &#62; 1.16 la versione stabile di FCKeditor è disponibile qui : http://svn.wikimedia.org. SVN path:&#160;http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/FCKeditor) Peccato solo che la versione ufficiale esce con un bel baco : Fatal error: Cannot redeclare js_unescape&#40;&#41; &#40;previously declared in /home/webapps/ineh/extensions/FCKeditor/FCKeditorSajax.body.php:268&#41; in &#8230; <a href="http://blog.luigimolinaro.it/2011/10/mediawiki-fckeditor/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dalla versione di MediaWiki &gt; 1.16 la versione stabile di FCKeditor è disponibile qui : http://svn.wikimedia.org.</p>
<p><strong>SVN path</strong>:&nbsp;http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/FCKeditor)</p>
<p>Peccato solo che la versione ufficiale esce con un bel baco :</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li>Fatal error: Cannot redeclare js_unescape<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>previously declared <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>webapps<span style="color: #000000; font-weight: bold;">/</span>ineh<span style="color: #000000; font-weight: bold;">/</span>extensions<span style="color: #000000; font-weight: bold;">/</span>FCKeditor<span style="color: #000000; font-weight: bold;">/</span>FCKeditorSajax.body.php:<span style="color: #000000;">268</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>webapps<span style="color: #000000; font-weight: bold;">/</span>ineh<span style="color: #000000; font-weight: bold;">/</span>includes<span style="color: #000000; font-weight: bold;">/</span>AjaxFunctions.php on line <span style="color: #000000;">55</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Per risolvere basta modificare questa pagina all&#8217;interno della cartella extensions/FCKeditor e cambiare&nbsp;&nbsp;‘js_unescape’ con ‘fck_js_unescape’;</p>
<p>O lo fate a mano o usate rpl ad esempio :</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li>rpl js_unescape fck_js_unescape FCKeditorSajax.body.php</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/10/mediawiki-fckeditor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LVM &#8211; Come funziona</title>
		<link>http://blog.luigimolinaro.it/2011/10/lvm-come-funziona/</link>
		<comments>http://blog.luigimolinaro.it/2011/10/lvm-come-funziona/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 15:24:27 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=208</guid>
		<description><![CDATA[Introduzione&#160; LVM (Logical Volume Manager) permette l’utilizzo di dispositivi logici virtuali per accedere ai disci, mascherano cosi’ la natura dei dispositivi fisici su cui risiedono i dati. E’ quindi possibile utilizzare un device virtuale di cui possono fare parte diversi &#8230; <a href="http://blog.luigimolinaro.it/2011/10/lvm-come-funziona/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>Introduzione&nbsp;</h2>
<p>LVM (Logical Volume Manager) permette l’utilizzo di dispositivi logici virtuali per accedere ai disci, mascherano cosi’ la natura dei dispositivi fisici su cui risiedono i dati.</p>
<p>E’ quindi possibile utilizzare un device virtuale di cui possono fare parte diversi hard disk fisici, anche di natura, velocità e dimensioni diverse.</p>
<p>I vantaggi di un simile approccio alla gestione dei file system sono maggiore flessibilita’ e scalabilita’, alta disponibilita’ del servizio e ridondanza.</p>
<h2>Schema</h2>
<p><pre>                        -------------------------------------------------
Logical Volumes  (LV)   |    lv_share   |    lv_backup   |   (unused)   |
                        -------------------------------------------------
Volume Groups    (VG)   |                 vg_fileserver                 |
                        -------------------------------------------------
Physical Volumes (PV)   | /dev/sdb1 | /dev/sdc1 | /dev/sdd1 | /dev/sde1 |
                        -------------------------------------------------</pre></p>
<h2>Ricerca nuovi dischi&nbsp;</h2>
<p>Per vedere nuovi dischi aggiunti alla macchina:<br />
echo 1 &gt; /sys/class/fc_host/host/issue_lip<br />
rescan-scsi-bus.sh -l -w -c<br />
multipath</p>
<h2>Physical Volumes (PV)&nbsp;</h2>
<p>Per creare un Physical Volume (PV) su una partizione esistente, cioe’ rendere la partizione adatta ad ospitare dei Volume Group (VG):<br />
pvcreate ”/dev/sdb1”</p>
<p>Per visualizzare tutti i Physical Volume (PV) presenti:<br />
pvdisplay</p>
<p>Per spostare tutti i dati da un Physical Volume (PV) ad un altro:<br />
pvmove -i 10 ”/dev/sdb1” ”/dev/sdc1”</p>
<h2>Volume Groups (VG)&nbsp;</h2>
<p>Per creare un Volume Group (VG) su un Physical Volume (PV) precedentemente creato:<br />
vgcreate ”vg_name” ”/dev/sdb1” ”/dev/sdc1”</p>
<p>Per attivare un Volume Group (VG) non attivo:<br />
vgchange -a y ”vg_name”</p>
<p>Per estendere un Volume Group (VG):<br />
vgextend ”vg_name” ”/dev/sdd1”</p>
<p>Per visualizzare tutti i Volume Group (VG) presenti:<br />
vgdisplay</p>
<p>Per rinominare un Volume Group (VG):<br />
vgrename ”vg_name” ”vg_new_name”</p>
<h2>Logical Volumes (LV)</h2>
<p>Per creare un Logical Volume (LV) grande 2 GB su un Volume Group (VG) precedentemente creato:<br />
lvcreate -L”2G” -n ”lv_name” ”vg_name”</p>
<p>Per formattare in xfs il Logical Volume (LV) appena creato:<br />
mkfs.xfs /dev/”vg_name”/”lv_name”</p>
<p>Per estendere un Logical Volume (LV) di 1 GB:<br />
lvextend -L”+1G” /dev/”vg_name”/”lv_name”</p>
<p>Per estendere il filesystem presente sul Logical Volume (LV) appena esteso:<br />
xfs_growfs /mountpoint</p>
<p>Per visualizzare tutti i Logical Volume (LV) presenti:<br />
lvdisplay</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/10/lvm-come-funziona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitorare progresso restore Mysql</title>
		<link>http://blog.luigimolinaro.it/2011/10/monitorare-progresso-restore-mysql/</link>
		<comments>http://blog.luigimolinaro.it/2011/10/monitorare-progresso-restore-mysql/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 11:07:07 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=194</guid>
		<description><![CDATA[Vi è mai capitato di dover copiare un file di grandi dimensioni e voler monitorare lo stato di avanzamento della copia? Con pv è possibile farlo in maniera molto semplice. Le distribuzioni più comuni permettono di installare pv con un semplice apt-get install pv o yum &#8230; <a href="http://blog.luigimolinaro.it/2011/10/monitorare-progresso-restore-mysql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="post-1951">
<div>
<p>Vi è mai capitato di dover copiare un file di grandi dimensioni e voler monitorare lo stato di avanzamento della copia? Con pv è possibile farlo in maniera molto semplice. Le distribuzioni più comuni permettono di installare pv con un semplice<strong> apt-get install pv o yum install pv</strong>, dopodiché potete monitorare lo stato di avanzamento di una copia semplicemente mettendo pv in pipe con altri comandi. pv di per sé si comporta in maniera molto simile a cat, quindi, ad esempio, se dovete mandare una serie di query a mysql :<br />
<pre># pv database_backup.sql | mysql my_database
96.8MB 0:00:17 [5.51MB/s] [==&gt;                                ] 11% ETA 0:02:10</pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/10/monitorare-progresso-restore-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ecco il nuovo sito Ubuntu App Developer: annuncio ufficiale!</title>
		<link>http://blog.luigimolinaro.it/2011/09/ecco-il-nuovo-sito-ubuntu-app-developer-annuncio-ufficiale/</link>
		<comments>http://blog.luigimolinaro.it/2011/09/ecco-il-nuovo-sito-ubuntu-app-developer-annuncio-ufficiale/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 09:38:19 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=190</guid>
		<description><![CDATA[Punto di riferimento fondamentale per tutti gli sviluppatori Ubuntu: il nuovo sito è stato ufficialmente annunciato e risulta giù attivo a questo indirizzo: http://developer.ubuntu.com/. Un supporto passo passo per chi ha voglia di dedicarsi allo sviluppo di applicazioni per uno dei sistemi &#8230; <a href="http://blog.luigimolinaro.it/2011/09/ecco-il-nuovo-sito-ubuntu-app-developer-annuncio-ufficiale/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2><span class="Apple-style-span" style="font-size: 13px; font-weight: normal;"><a href="http://blog.luigimolinaro.it/wp-content/uploads/2011/09/developer-ubuntu.png"><img class="alignnone size-full wp-image-191" title="developer-ubuntu" src="http://blog.luigimolinaro.it/wp-content/uploads/2011/09/developer-ubuntu.png" alt="" width="560" height="292" /></a><br />
</span></h2>
<div>
<div>
<div>
<div>
<p>Punto di riferimento fondamentale per tutti gli sviluppatori Ubuntu: <strong>il nuovo sito è stato ufficialmente annunciato e risulta giù attivo a questo indirizzo: <a href="http://developer.ubuntu.com/" target="_blank">http://developer.ubuntu.com/</a>.</strong></p>
<p>Un supporto passo passo per chi ha voglia di dedicarsi allo sviluppo di applicazioni per uno dei sistemi operativi free più utilizzati al mondo: il sito è costituito da diverse sezioni, tutte con uno scopo ben preciso.</p>
<ul>
<li><a href="http://developer.ubuntu.com/get-started/" target="_blank">Get started</a> – Per incominciare…</li>
<li><a href="http://developer.ubuntu.com/resources/" target="_blank">Resources</a> – Tutorial, guide e tutta la documentazione necessaria per lo sviluppo</li>
<li><a href="http://developer.ubuntu.com/publish/" target="_blank">Publish</a> – Viene spiegato come usufruire del famoso Ubuntu Software Centre</li>
<li><a href="http://developer.ubuntu.com/community/" target="_blank">Community</a> – Community che riunisce tutti gli sviluppatori</li>
<li><a href="https://myapps.developer.ubuntu.com/" target="_blank">My Apps</a> – Sezione in cui possiamo tutte le applicazioni sviluppate e relative informazioni.</li>
</ul>
<p><strong>Ci si aspettano ulteriori novità e cambiamenti che verranno probabilmente discusse e rivelate in occasione dell’ Ubuntu Developer Summit che si terrà ad Orlando</strong></p>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/09/ecco-il-nuovo-sito-ubuntu-app-developer-annuncio-ufficiale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cancellare directory piena di files (giga)</title>
		<link>http://blog.luigimolinaro.it/2011/07/cancellare-directory-piena-di-files-giga/</link>
		<comments>http://blog.luigimolinaro.it/2011/07/cancellare-directory-piena-di-files-giga/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 16:35:31 +0000</pubDate>
		<dc:creator>Luigi Molinaro</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.luigimolinaro.it/?p=183</guid>
		<description><![CDATA[Se stai cercando di eliminare un numero molto elevato di file in una sola volta (ho cancellato una directory con 7.485.000 oggi +), probabilmente incorrerai in questo errore: Il problema è che quando si digita qualcosa del tipo &#8220;rm-rf *&#8221;, &#8230; <a href="http://blog.luigimolinaro.it/2011/07/cancellare-directory-piena-di-files-giga/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="gt-res-content">
<p>Se stai cercando di eliminare un numero molto elevato di file in una sola volta (ho cancellato una directory con 7.485.000 oggi +), probabilmente incorrerai in questo errore:</p>
<p><pre class="brush: bash; title: Codice : ; notranslate">/bin/rm: Argument list too long.</pre></p>
<p dir="ltr">Il problema è che quando si digita qualcosa del tipo &#8220;rm-rf *&#8221;, il &#8220;*&#8221; viene sostituito con un elenco di tutti i file corrispondenti, come &#8220;rm-rf file1 file2 file3 file4&#8243; e così via. C&#8217;è un buffer relativamente piccolo di memoria allocata per la memorizzazione questo elenco di argomenti e se è riempito, la shell non esegue il programma.</p>
<p>Per ovviare a questo problema, un sacco di persone useranno il comando find per trovare tutti i file e passarli uno ad uno per il comando &#8220;rm&#8221; in questo modo:</p>
<p><pre class="brush: bash; title: Codice : ; notranslate">find . -type f -exec rm -v {} \;</pre></p>
<p dir="ltr">Il mio problema è che avevo bisogno di cancellare queli 8 milioni di log e sci metteva davvero troppo tempo.<br />
Sono incappato in un modo molto più veloce di eliminare file &#8211; il comando &#8220;find&#8221; ha un &#8220;-delete&#8221;  perfetto per me! Ecco cosa ho finito per usare:</p>
<p><pre class="brush: bash; title: Codice : ; notranslate">find . -type f -delete</pre></p>
<p dir="ltr">Utilizzando questo metodo, ho cancellato di circa 2000 file / secondo &#8230;  molto più veloce!</p>
<p dir="ltr">È anche possibile visualizzare i nomi dei file mentre li cancellati :</p>
<p><pre class="brush: bash; title: Codice : ; notranslate">find . -type d -print -delete</pre></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.luigimolinaro.it/2011/07/cancellare-directory-piena-di-files-giga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

