<?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>Giuseppe Del Duca</title>
	<atom:link href="http://www.giuseppedelduca.it/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.giuseppedelduca.it</link>
	<description>Just Me, my Life, my Work, Myself...</description>
	<lastBuildDate>Mon, 16 Jan 2012 00:01:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Arduino rs485 e protocolli seriali</title>
		<link>http://www.giuseppedelduca.it/domotica-arduino-rs485-e-protocolli-seriali/</link>
		<comments>http://www.giuseppedelduca.it/domotica-arduino-rs485-e-protocolli-seriali/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 22:15:14 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Domotica con Arduino]]></category>
		<category><![CDATA[arduino multimaster]]></category>
		<category><![CDATA[arduino rs485]]></category>
		<category><![CDATA[bus seriale modbus]]></category>
		<category><![CDATA[domotica con arduino]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/?p=83</guid>
		<description><![CDATA[Quanti di voi, e mi riferisco a tecnici e sviluppatori, hanno &#8220;giocato&#8221; almeno una volta con Arduino? Quanti hanno pensato di usare arduino per applicazioni domotiche tentanto di far comunicare tra loro gli arduini via ethernet o via bus seriale rs485 con modbus o canbus? Beh, dopo quasi 2 anni che seguo l&#8217;argomento, ho aperto [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-104" style="margin: 0pt 15px 5px 0pt;" title="Arduino domotica" src="http://www.giuseppedelduca.it/wp-content/uploads/2012/01/Arduino-Uno-150x150.jpg" alt="" width="150" height="150" />Quanti di voi, e mi riferisco a tecnici e sviluppatori, hanno &#8220;giocato&#8221; almeno una volta con <a title="arduino" href="http://www.arduino.cc/" target="_blank">Arduino</a>? Quanti hanno pensato di <strong>usare arduino per applicazioni domotiche</strong> tentanto di far comunicare tra loro gli arduini via ethernet o via bus <strong>seriale rs485 con modbus o canbus</strong>? Beh, dopo quasi 2 anni che seguo l&#8217;argomento, ho aperto finalmente il sito <a title="domotica con arduino" href="http://www.automazionedomotica.it">www.automazionedomotica.it</a> dove scambiare considerazioni, commenti e critiche costruttive, insieme ad altri esperti del settore che ho avuto modo di conoscere.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/domotica-arduino-rs485-e-protocolli-seriali/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux kernel PAE and nVidia modules [solved]</title>
		<link>http://www.giuseppedelduca.it/linux-kernel-pae-and-nvidia-modules-solved/</link>
		<comments>http://www.giuseppedelduca.it/linux-kernel-pae-and-nvidia-modules-solved/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 20:04:27 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/linux-kernel-pae-and-nvidia-modules-solved/</guid>
		<description><![CDATA[Se anche voi avete avuto il &#8220;piacere&#8221; di testare la Vs. pazienza cercando di far funzionare i driver nvidia insieme al kernel pae (quello per supportare più di 4GB di ram), sarete certamente felici di leggere la soluzione che riporto di seguito: scaricare i driver nVidia dal sito ufficiale installare i pacchetti build-essential e linux-headers-`uname [...]]]></description>
			<content:encoded><![CDATA[<p>Se anche voi avete avuto il &#8220;piacere&#8221; di testare la Vs. pazienza  cercando di far funzionare i driver nvidia insieme al kernel pae (quello  per supportare più di 4GB di ram), sarete certamente felici di leggere la soluzione che riporto di seguito:</p>
<ul>
<li>scaricare i driver nVidia dal sito ufficiale</li>
<li>installare i pacchetti build-essential e linux-headers-`uname -r`</li>
<li>andare su Sistema &gt; Amministrazione &gt; Driver aggiuntivi e rimuovere tutto ciò che riguarda nvidia</li>
<li>passare alla shell con CTRL+ALT+1 e fermare gdm</li>
<li>lanciare la procedura di installazione dei driver con il parametro -k $(uname -r)</li>
<li>mettere in blacklist i driver FOSS nouveau scrivendo blacklist nouveau nel file /etc/modprobe.d/blacklist.conf</li>
<li>riavviare il sistema e incrociare le dita</li>
</ul>
<p>Se non funziona ancora, ho letto che talvolta bisogna modificare anche grub, quindi andare in /etc/default/grub e verificare che ci siano queste 2 righe:<code>GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"<br />
GRUB_CMDLINE_LINUX="nomodeset"</code><br />
o eventualmente modificarle in modo che diventino tali.</p>
<p>In bocca al lupo!</p>
<p><span class="Apple-style-span" style="font-family: arial"><span class="Apple-style-span" style="font-size: small"></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/linux-kernel-pae-and-nvidia-modules-solved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ripristino file infetti da rootkit su linux (parte 1)</title>
		<link>http://www.giuseppedelduca.it/ripristino-file-infetti-da-rootkit-su-linux/</link>
		<comments>http://www.giuseppedelduca.it/ripristino-file-infetti-da-rootkit-su-linux/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 20:43:48 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Lamentazioni]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rootkit]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/ripristino-file-infetti-da-rootkit-su-linux/</guid>
		<description><![CDATA[Nonostante tutte le accortezze, può capitare talvolta di trovarsi il server bucato da qualcuno che non ha niente di meglio da fare nella vita. Premesso che per sicurezza sarebbe sempre meglio una reinstallazione completa del sistema, potrebbe essere necessario &#8220;mantenere in vita&#8221; la macchina per compiere alcune operazioni o semplicemente salvare i dati. Purtroppo alcuni [...]]]></description>
			<content:encoded><![CDATA[<p>Nonostante tutte le accortezze, può capitare talvolta di trovarsi il <strong>server bucato</strong> da qualcuno che non ha niente di meglio da fare nella vita. Premesso che per sicurezza sarebbe sempre meglio una <em>reinstallazione completa del sistema</em>, potrebbe essere necessario &#8220;mantenere in vita&#8221; la macchina per compiere alcune operazioni o semplicemente salvare i dati. Purtroppo alcuni <strong>rootkit</strong> (es. <strong>SHV4 e SHV5 su linux ubuntu 8.04</strong>) hanno la brutta abitudine di patchare e modificare i permessi di alcuni file (/bin/ls /bin/netstat /bin/ps /bin/top ecc&#8230;), per cui quando si tenta di ripristinarli ci si trova un bel &#8220;<strong>Operation not permitted</strong>&#8221; perchè li hanno impostati come &#8220;immutabili&#8221;. Quindi, dopo una buona dose di imprecazioni, ecco come fare per <strong>controllare i permessi</strong> usando il nostro amico <strong>lsattr</strong>:</p>
<p><code># lsattr /bin/ls<br />
s—ia——- ./ls<br />
# lsattr /bin/ps<br />
s—ia——- ./ps<br />
# lsattr /bin/netstat<br />
s—ia——- ./netstat</code></p>
<p>&#8230;e soprattutto la soluzione:</p>
<p><code># chattr -sia /bin/ls<br />
# chattr -sia /bin/ps<br />
# chattr -sia /bin/netstat</code></p>
<p>E per finire&#8230; un bel dito medio a tutti gli sviluppatori di rootkit!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/ripristino-file-infetti-da-rootkit-su-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cronjob report via mail e impostazioni</title>
		<link>http://www.giuseppedelduca.it/cronjob-report-via-mail-e-impostazioni/</link>
		<comments>http://www.giuseppedelduca.it/cronjob-report-via-mail-e-impostazioni/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 00:16:26 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Cron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/cronjob-report-via-mail-e-impostazioni/</guid>
		<description><![CDATA[Giusto un paio di note a titolo di promemoria su come controllare a chi spedire i report dei cronjob (oppure come evitare che cron spedisca le email). Di default cron spedisce la mail all&#8217;utente proprietario del cronjob (configurare la mail in /etc/aliases). Aprire la lista dei cronjobs: $ crontab -e Per impostare il destinatario dei [...]]]></description>
			<content:encoded><![CDATA[<p>Giusto un paio di note a titolo di promemoria su come controllare a chi spedire i report dei cronjob (oppure come evitare che cron spedisca le email). Di default cron spedisce la mail all&#8217;utente proprietario del cronjob (configurare la mail in /etc/aliases).</p>
<p>Aprire la lista dei cronjobs:</p>
<p><code>$ crontab -e</code></p>
<p>Per impostare il destinatario dei report di cron:</p>
<p><code>MAILTO=test@foobar.com</code></p>
<p>Se non voglio che venga spedita alcuna email:</p>
<p><code>MAILTO=""</code></p>
<p>Per evitare la mail di alcuni cronjob, impostare come segue:</p>
<p><code>* * * * * /path/to/command &gt;/dev/null 2&gt;&amp;1 </code></p>
<p>Eventualmente togliere il <strong>2&gt;&amp;1</strong> se vogliamo spedire solo gli errori.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/cronjob-report-via-mail-e-impostazioni/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nagios: DISK CRITICAL &#8211; /home/name/.gvfs is not accessible</title>
		<link>http://www.giuseppedelduca.it/nagios-check-disk-gvfs-not-accessible-error/</link>
		<comments>http://www.giuseppedelduca.it/nagios-check-disk-gvfs-not-accessible-error/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 19:00:52 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/nagios-check-disk-gvfs-not-accessible-error/</guid>
		<description><![CDATA[Nagios è un tool molto potente per monitorare servizi o interi sistemi, reti, ecc&#8230; ma come ogni software richiede una certa configurazione. Per chi usa ubuntu (mio caso) l&#8217;installazione si riduce ad un semplice &#8220;apt-get install nagios3&#8221; e poi qualche ritocco ai file in /etc/nagios3/conf.d. La configurazioe di Nagios tuttavia, almeno per i servizi più [...]]]></description>
			<content:encoded><![CDATA[<p>Nagios è un tool molto potente per monitorare servizi o interi sistemi, reti, ecc&#8230; ma come ogni software richiede una certa configurazione. Per chi usa ubuntu (mio caso) l&#8217;installazione si riduce ad un semplice &#8220;<strong>apt-get install nagios3</strong>&#8221; e poi qualche ritocco ai file in <strong>/etc/nagios3/conf.d</strong>. La configurazioe di Nagios tuttavia, almeno per i servizi più comuni (apache, mysql, ssh, &#8230;) non è difficile, basta fare copia e incolla dai file di esempio. Lo scopo di questo articolo è mostrare la soluzione di un <em>messaggio di errore</em> molto comune (<strong>DISK CRITICAL &#8211; /home/name/.gvfs is not accessible</strong>) nella installazione di default, per quanto riguarda il monitoraggio dello spazio disponibile su disco. In particolare, l&#8217;errore si verifica quando il demone chiama i comandi <strong>check_disk</strong> e <strong>check_all_disks</strong> per accedere a ciascun punto di mount, e magari incontra <strong>.gvfs</strong>. <em>GVFS è il filesystem virtuale di Gnome desktop</em>, quindi non una unità vera e propria, e bisogna pertanto escluderla dalla lista dei controlli eseguiti da Nagios. Per risolvere il problema bisogna quindi fare la seguente modifica al file /etc/nagios-plugins/config/disk.cfg aggiungendo ai parametri <strong>-A -i &#8216;.gvfs&#8217;</strong></p>
<p><code># 'check_disk' command definition<br />
define command{<br />
command_name   check_disk<br />
command_line   /usr/lib/nagios/plugins/check_disk -w '$ARG1$' -c '$ARG2$' -p '$ARG3$' -A -i '.gvfs'<br />
}</code></p>
<p><code># 'check_all_disks' command definition<br />
define command{<br />
command_name   check_all_disks<br />
command_line   /usr/lib/nagios/plugins/check_disk -w '$ARG1$' -c '$ARG2$' -A -i '.gvfs'<br />
}</code></p>
<p>Spero di essere stato utile a qualcuno.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/nagios-check-disk-gvfs-not-accessible-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug in php5-cli chiamato da cronjob</title>
		<link>http://www.giuseppedelduca.it/bug-in-php5-cli-chiamato-da-cronjob/</link>
		<comments>http://www.giuseppedelduca.it/bug-in-php5-cli-chiamato-da-cronjob/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 00:16:45 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Cron]]></category>
		<category><![CDATA[Lamentazioni]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/bug-in-php5-cli-chiamato-da-cronjob/</guid>
		<description><![CDATA[Ho appena scoperto un bug molto fastidioso di php5-cli. In pratica: se si crea uno script php, eseguito da shell chiamato da cron, e nel file di configurazione php.ini è stato attivato il supporto per php_gtk, il relativo cronjob fallisce. La cosa strana è che se lo stesso script viene eseguito lanciandolo a mano da [...]]]></description>
			<content:encoded><![CDATA[<p>Ho appena scoperto un bug molto fastidioso di php5-cli. In pratica: se si crea uno script php, eseguito da shell chiamato da cron, e nel file di configurazione php.ini è stato attivato il supporto per php_gtk, il relativo cronjob fallisce. La cosa strana è che se lo stesso script viene eseguito lanciandolo a mano da shell, funziona senza alcun problema. Assurdo, vero? Non so quale sia la causa, ma purtroppo quando voglio sviluppare con le gtk, bisogna sospendere i cronjob che interessano il php.</p>
<p>Bah&#8230; chissà che qualcuno lo risolva presto&#8230; o forse come spesso accade, sono l&#8217;unico che ha questi problemi?  <img src='http://www.giuseppedelduca.it/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/bug-in-php5-cli-chiamato-da-cronjob/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.4 &#8211; Monitor out of range during boot</title>
		<link>http://www.giuseppedelduca.it/ubuntu-104-monitor-out-of-range-during-boot/</link>
		<comments>http://www.giuseppedelduca.it/ubuntu-104-monitor-out-of-range-during-boot/#comments</comments>
		<pubDate>Sun, 10 Oct 2010 17:12:01 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Boot]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/ubuntu-104-monitor-out-of-range-during-boot/</guid>
		<description><![CDATA[Did you get a black screen or &#8220;out of range&#8221; message? Here it is the solution: sudo apt-get remove grub sudo apt-get install grub-pc sudo grub-install /dev/sda sudo update-grub2 After running that last command, you should see your linux and windows install listed in the terminal output. Next, we try to fix your splash problem [...]]]></description>
			<content:encoded><![CDATA[<p>Did you get a black screen or &#8220;out of range&#8221; message? Here it is the solution:</p>
<p>sudo apt-get remove grub<br />
sudo apt-get install grub-pc<br />
sudo grub-install /dev/sda<br />
sudo update-grub2</p>
<p>After running that last command, you should see  your  linux and windows install listed in the terminal output. Next, we  try  to fix your splash problem (and hopefully it speeds up your boot):</p>
<p>sudo apt-get install v86d<br />
gksu gedit /etc/default/grub</p>
<p>Look for the line that says:<br />
GRUB_CMDLINE_LINUX_DEFAULT=&#8221;quiet splash&#8221;<br />
and replace it with:<span id="more-61"></span><br />
GRUB_CMDLINE_LINUX_DEFAULT=&#8221;quiet splash nomodeset video=uvesafb:mode_option=1280&#215;1024-24,mtrr=3,scroll=ywrap&#8221;</p>
<p>Then, look for the line that says:<br />
#GRUB_GFXMODE=640&#215;480<br />
and replace it with:<br />
GRUB_GFXMODE=1280&#215;1024<br />
Save the file and exit gedit.</p>
<p>Next, run the following command:<br />
gksu gedit /etc/initramfs-tools/modules</p>
<p>and add this line at  the end of the file:<br />
uvesafb mode_option=1280&#215;1024-24 mtrr=3 scroll=ywrap</p>
<p>Save  the file and close gedit.</p>
<p>Then, run this command in a terminal:<br />
echo FRAMEBUFFER=y | sudo tee  /etc/initramfs-tools/conf.d/splash</p>
<p>Finally, run the following two  commands:<br />
sudo update-grub2<br />
sudo update-initramfs -u</p>
<p>The above worked for me on an Nvidia card.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/ubuntu-104-monitor-out-of-range-during-boot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replicazione MySql configurazione multi-master con autoincrement offset</title>
		<link>http://www.giuseppedelduca.it/replicazione-mysql-configurazione-multi-master-con-autoincrement-offset/</link>
		<comments>http://www.giuseppedelduca.it/replicazione-mysql-configurazione-multi-master-con-autoincrement-offset/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 22:24:02 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/replicazione-mysql-configurazione-multi-master-con-autoincrement-offset/</guid>
		<description><![CDATA[Dopo l&#8217;articolo sulla semplice replicazione di MySql master-slave, passiamo ad una configurazione leggermente più complessa. Nella replicazione di MySql master-slave, il concetto di base è che il master viene usato per tutte le operazioni di scrittura/lettura, mentre lo slave solo per la lettura, vuoi come backup, vuoi come bilanciamento del carico. Con la configurazione per [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo l&#8217;articolo sulla semplice <a href="http://www.giuseppedelduca.it/guida-alla-replicazione-di-mysql-aggiungere-un-server-slave/" title="guida replicazione di mysql master-slave">replicazione di MySql master-slave</a>, passiamo ad una configurazione leggermente più complessa. Nella <strong>replicazione di MySql master-slave</strong>, il concetto di base è che il master viene usato per tutte le operazioni di scrittura/lettura, mentre lo <em>slave solo per la lettura</em>, vuoi come <strong>backup</strong>, vuoi come <strong>bilanciamento del carico</strong>. Con la <strong>configurazione per la replica multimaster</strong> invece, si ha la possibilità di usare <em>entrambi i server MySql sia in lettura che in scrittura</em>, dato che avviene<span id="more-60"></span> la <strong>sincronizzazione in entrambi i sensi</strong>. In pratica <u>ogni server mysql diventa sia master che slave</u>.</p>
<p>A questo punto nasce un <strong>problema</strong>:<br />
supponiamo che entrambi i server abbiano lo stesso valore di autoincrement per una certa tabella e casualmente scriviamo contemporaneamente su entrambi i server MySql. <em>Quale sarà la riga da replicare?</em> <strong>Entrambe!</strong> Il risultato è ovvio: abbiamo <em>2 righe duplicate e la sincronizzazione si ferma</em>.</p>
<p>Nasce così l&#8217;esigenza di gestire gli indici in modo diverso e quindi bisogna introdurre il concetto di <strong>offset per gli indici auto_increment</strong>. Ecco un esempio:</p>
<p><span class="whiteBack Stile1"><strong>Server MySql-1 :</strong><br />
<code>auto_increment_increment      = 2<br />
auto_increment_offset         = 1</code></span></p>
<p><strong>Server MySql-2:</strong><br />
<code>auto_increment_increment      = 2<br />
auto_increment_offset         = 2</code></p>
<p>(ovviamente i valori vanno scelti in base al numero di server che utilizziamo)</p>
<p>Quindi, riassumendo, ciascuno dei <strong>server MySql in replica multi-master</strong> avrà una configurazione simile a questa (ogni server ha i suoi id, ip, usr e pwd):</p>
<p><span class="whiteBack Stile1"><code>auto_increment_increment = 2<br />
auto_increment_offset = 1<br />
server_id = 2<br />
log_bin = /var/log/mysql/mysql-bin.log<br />
master_host = 10.0.0.5<br />
master_user = user_name<br />
master_password = user_pwd<br />
master_port = 3306<br />
log_slave_updates<br />
replicate_same_server_id = 0</code></span></p>
<p>Ciao e alla prossima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/replicazione-mysql-configurazione-multi-master-con-autoincrement-offset/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Grub2 vga modes &#8211; Cambiare la risoluzione di grub2</title>
		<link>http://www.giuseppedelduca.it/grub2-vga-modes-cambiare-la-risoluzione-di-grub2/</link>
		<comments>http://www.giuseppedelduca.it/grub2-vga-modes-cambiare-la-risoluzione-di-grub2/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 13:50:29 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Boot]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/grub2-vga-modes-cambiare-la-risoluzione-di-grub2/</guid>
		<description><![CDATA[Suppongo che molti di voi, come me, si siano trovati spiazzati con la nuova configurazione di Grub2. La cosa probabilmente più utile per chi lavora da shell, è poter impostare la risoluzione più alta in grub2. Nel vecchio grub c&#8217;era il parametro vga da passare al kernel, mentre per cambiare la risoluzione di grub2 bisogna: [...]]]></description>
			<content:encoded><![CDATA[<p>Suppongo che molti di voi, come me, si siano trovati spiazzati con la nuova<strong> configurazione di Grub2</strong>. La cosa probabilmente più utile per chi lavora da shell, è poter <strong>impostare la risoluzione più alta in grub2</strong>. Nel vecchio grub c&#8217;era il parametro vga da passare al kernel, mentre per<strong> cambiare la risoluzione di grub2</strong> bisogna:</p>
<p>Aprire il file /etc/default/grub</p>
<p>Modificare (o aggiungere) i seguenti parametri</p>
<p><code>GRUB_GFXMODE=1024x768<br />
GRUB_GFXPAYLOAD_LINUX=keep</code></p>
<p>Salvare il file e dare questi comandi da shell:</p>
<p><code>sudo grub-mkconfig &amp;&amp; update-grub</code></p>
<p>Fatto!</p>
<p>(Grub2 help: <a href="http://https://help.ubuntu.com/community/Grub2" title="grub2 help" target="_blank">https://help.ubuntu.com/community/Grub2</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/grub2-vga-modes-cambiare-la-risoluzione-di-grub2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Guida alla Replicazione di MySql: aggiungere un server Slave ad un server mysql già esistente</title>
		<link>http://www.giuseppedelduca.it/guida-alla-replicazione-di-mysql-aggiungere-un-server-slave/</link>
		<comments>http://www.giuseppedelduca.it/guida-alla-replicazione-di-mysql-aggiungere-un-server-slave/#comments</comments>
		<pubDate>Fri, 28 May 2010 12:46:36 +0000</pubDate>
		<dc:creator>Giuseppe Del Duca</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.giuseppedelduca.it/guida-alla-replicazione-di-mysql-aggiungere-un-server-slave/</guid>
		<description><![CDATA[Dato che ho necessità di fare questa operazione per lavoro, colgo l&#8217;occasione per scrivere un articolo che serva come guida per aggiungere un server slave a mysql per la replicazione del database. Avere uno slave mysql può servire per vari motivi, ad esempio bilanciare il carico delle query in lettura, o semplicemente fare una copia [...]]]></description>
			<content:encoded><![CDATA[<p>Dato che ho necessità di fare questa operazione per lavoro, colgo l&#8217;occasione per scrivere un articolo che serva come <strong>guida per aggiungere un server slave a mysql per la replicazione del database</strong>. Avere uno slave mysql può servire per vari motivi, ad esempio <em>bilanciare il carico delle query in lettura</em>, o semplicemente <em>fare una copia di backup del database mysql</em>. Da sottolineare &#8220;<em>in lettura</em>&#8220;, dal momento che le query in scrittura vanno necessariamente lanciate sul server master, perchè di default <strong>la replicazione di mysql è oneway</strong>, cioè solo in <span id="more-58"></span>un senso e asincrona, sebbene l&#8217;intervallo di tempo sia comunque molto basso (nell&#8217;ordine dei millisecondi). In altre parole, si imposta un <strong>server mysql come master</strong>, gli si dice di creare un <strong>log binario</strong> con le operazioni che vengono eseguire in scrittura, e poi lo slave leggendo il file di log, ripete le stesse operazioni su se stesso per &#8220;allinearsi&#8221;. Il viceversa non vale. Diverso è il caso della <a href="http://www.giuseppedelduca.it/replicazione-mysql-configurazione-multi-master-con-autoincrement-offset/">configurazione mysql multimaster</a>, ma tratterò l&#8217;argomento in un altro articolo successivo.</p>
<p>Ok, passiamo alla pratica: <strong>come aggiungere uno slave ad un server mysql esistente</strong>. Inutile dire che tutte le operazioni banno eseguite con la massima attenzione e con mysql fermo o almeno bloccato in sola lettura per non fare danni.</p>
<p>Prima di tutto bisogna <strong>configurare il server mysql esistente come master</strong>:</p>
<p><code>/etc/init.d/mysql stop</code></p>
<p>Modificare il file <em>/etc/mysql/my.cnf</em>  per abilitare il networking e la scrittura del file di log binario:</p>
<p><code>#skip-networking<br />
bind-address            = [indirizzo_ip_raggiungibile_dal_server_slave]<br />
server-id               = 1<br />
log_bin                 = /var/log/mysql/mysql-bin.log<br />
expire_logs_days        = 10<br />
max_binlog_size         = 100M<br />
binlog_do_db            = [nome_db_da_replicare]</code></p>
<p>Adesso per sicurezza, cancelliamo eventuali vecchi file di log binario (così il server crea un log pulito ed a prova di errore) e poi facciamo ripartire il server master:</p>
<p><code>rm /var/log/mysql/mysql-bin.*<br />
/etc/init.d/mysql start</code></p>
<p>Ripartito il server, accediamo via consolle a MySQL:<br />
<code>mysql -u root -p</code><br />
E diciamo a MySQL di consentire la replica al nostro <em>slave</em>:<br />
<code>GRANT REPLICATION SLAVE ON *.* TO '[nome_utente]'@'[indirizzo_ip_dello_slave]' IDENTIFIED BY '[password]';<br />
FLUSH PRIVILEGES;</code><br />
Ora bisogna selezionare il database da replicare e impostare eventuali <em>lock</em> di lettura per spostare i dati (se presenti) dal <em>master</em> allo <em>slave</em>:<br />
<code>USE [nome_database];<br />
FLUSH TABLES WITH READ LOCK;<br />
</code><br />
Controlliamo lo stato del <em>master</em>:</p>
<p><code>SHOW MASTER STATUS;</code></p>
<p><code>+------------------+----------+--------------+------------------+<br />
| File                         | Position | Binlog_Do_DB | Binlog_Ignore_DB |<br />
+------------------+----------+--------------+------------------+<br />
| mysql-bin.000001 |       98       | [nome_db]        |                                   |<br />
+------------------+----------+--------------+------------------+<br />
1 row in set (0.00 sec)</code></p>
<p>Bene, adesso <strong>senza chiudere la shell di MySQL</strong> (<em>altrimenti perdiamo il lock sulle tabelle e bisogna ricominciare</em>), apriamo un&#8217;altra shell ed esportiamo il database in un file sql da traferire sul server <em>slave</em>:<br />
<code>mysqldump -u root -p --opt [nome_db] &gt; [nome_db].sql</code></p>
<p>Una volta finita l&#8217;esportazione possiamo riaprire la shell di mysql per sbloccare il lock in lettura:</p>
<p><code>UNLOCK TABLES;</code><br />
Ok, passiamo alla <strong>configurazione del server slave di mysql</strong></p>
<p>Prima di tutto bisogna creare il database da replicare, quindi nella consolle dello slave MySQL scriviamo:</p>
<p><code>mysql -u root -p<br />
Enter password:<br />
CREATE DATABASE [nome_db];<br />
quit;</code></p>
<p>Ora carichiamo il dump SQL che abbiamo fatto prima dal server master mysql:</p>
<p><code>mysql -u root -p  [nome_db] &lt; [path_dove_e_salvato_il_file]/[nome_db].sql</code></p>
<p>Modificare il file <em>/etc/mysql/my.cnf</em>  per abilitare la lettura del file di log del server <em>master</em>:<br />
<code>server-id=2<br />
master-host=[ip_master]<br />
master-user=[user_creato_sul_master]<br />
master-password=[password]<br />
master-connect-retry=60<br />
replicate-do-db=[nome_db]</code><br />
A meno che lo slave sia un master a sua volta per altri slave sotto di lui, possiamo commentare la parte per il log bin sul server <em>slave</em>.</p>
<p>Ora non resta che riavviare il demone di mysql anche sullo slave e speriare che sia andato tutto bene <img src='http://www.giuseppedelduca.it/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><code>/etc/init.d/mysql restart</code></p>
<p>Per controllare lo status dello slave (va fatto periodicamente per assicurarci che funzioni!!) si può usare questo comando:</p>
<p><code>SLAVE STATUS;</code></p>
<p>That&#8217;s all folks!</p>
<p>&#8212;&#8211;</p>
<p><strong>PRECISAZIONE</strong>:</p>
<p>Nel caso la replicazione debba partire da un una particolare <strong>posizione del log binario di mysql</strong>, bisogna lanciare il seguente comando nella shell di mysql:<br />
<code>CHANGE MASTER TO MASTER_HOST='&lt;master_host_name&gt;', MASTER_USER='&lt;slave_user&gt;', MASTER_PASSWORD='&lt;slave_password&gt;', MASTER_LOG_FILE='&lt;recorded_log_file_name&gt;', MASTER_LOG_POS=&lt;recorded_log_position&gt;</code></p>
<p>Successivamente, se necessario, adeguare la configurazione nel file /etc/mysql/my.cnf.</p>
<p>&#8212;&#8211;</p>
<p><strong>AGGIORNAMENTO</strong>:</p>
<p>Nel caso il DB sia troppo grande, o comunque si voglia replicare l&#8217;intero server, procedere come segue (ovviamente dopo avere fermato mysql sia sul master che sullo slave, mi raccomando!):</p>
<p><strong>server master:</strong></p>
<p>1. Ferma MySql<br />
<code>sudo /etc/init.d/mysql stop</code></p>
<p>2. Compatta tutti i dati<br />
<code>tar zcvf mysql.tgz /var/lib/mysql</code></p>
<p>3. Copia (possibilmente con scp o comunque via SSH) il file mysql.tgz nello slave</p>
<p>4. Riavvia MySql<br />
<code>sudo /etc/init.d/mysql start</code></p>
<p><strong>server slave:</strong></p>
<p>1. Ferma MySql<br />
<code>sudo /etc/init.d/mysql stop</code></p>
<p>2. Rimuovi la cartella dei dati attuale<br />
<code>sudo rm -rf /var/lib/mysql</code></p>
<p>3. Scompatta la versione nuova dei dati<br />
<code>sudo tar zxvf mysql.tgz</code></p>
<p>4. Riavvia il database<br />
<code>sudo /etc/init.d/mysql start</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppedelduca.it/guida-alla-replicazione-di-mysql-aggiungere-un-server-slave/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

