<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>BackupOLSRAirOS</title><revhistory><revision><revnumber>8</revnumber><date>2011-04-28 22:05:59</date><authorinitials>stefanopilla</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-04-28 21:59:27</date><authorinitials>stefanopilla</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-04-28 21:51:17</date><authorinitials>stefanopilla</authorinitials></revision><revision><revnumber>5</revnumber><date>2011-04-28 21:50:49</date><authorinitials>stefanopilla</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-04-28 21:46:21</date><authorinitials>stefanopilla</authorinitials></revision><revision><revnumber>3</revnumber><date>2011-04-28 21:44:54</date><authorinitials>stefanopilla</authorinitials></revision><revision><revnumber>2</revnumber><date>2011-04-28 21:44:12</date><authorinitials>stefanopilla</authorinitials></revision><revision><revnumber>1</revnumber><date>2011-04-28 01:47:43</date><authorinitials>stefanopilla</authorinitials></revision></revhistory></articleinfo><section><title>Introduzione</title><para>Verrà brevemente spiegato un metodo molto semplice per effettuare il backup della configurazione OLSR di tutti gli apparati in una rete come quella Ninux.org </para><section><title>Requisiti</title><para>1)  Storage raggiungibile da tutti i nodi dove salvare tutti i files di configurazione </para><para>2) Server da dove eseguire lo script e raggiungibile da tutti nodi </para><para>3) Un file iphosts.bkc contenente tutti gli ip dei devices da raggiungere </para><para>4) Accesso ssh con chiave pubblica al dispositivo (funziona anche senza ma bisogna inserire la password ad ogni devices!!) </para></section><section><title>Creazione del file iphosts.bck</title><para>Chiaramente il percorso del file va specificato nello script. In questa guida lo considereremo nella stessa cartella dove risiederà lo script. </para><para>Il comando per generare il file è il seguente: </para><screen><![CDATA[Nemesys:~# touch iphosts.bck && echo -e "192.168.105.102 \n192.168.105.103" > iphosts.bck]]></screen><para>in questo caso nel file verranno inseriti gli ip 192.168.105.102 e 192.168.105.103 </para></section><section><title>Generazione delle chiavi</title><para>Ora passiamo alla generazione delle chiavi per l'accesso al dispositivo senza password: </para><screen><![CDATA[Nemesys:~# ssh-keygen -t rsa]]></screen><para>L'output dovrebbe essere come quello sotto: </para><screen><![CDATA[Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ed:87:f5:ec:d1:63:b0:d7:98:b3:94:ae:cb:7d:7d:d7 root@Nemesys
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|         .       |
|        S . ..   |
|         . o oo=.|
|          o ..X+=|
|           o =o+E|
|            +o=.o|
+-----------------+]]></screen><para>Verifichiamo la presenza delle chiavi appena generate con il comando: </para><screen><![CDATA[Nemesys:~# ls -al .ssh/
total 32K
drwx------  2 root root 4.0K Apr 28 01:48 .
drwxr-xr-x 11 root root 4.0K Apr 28 02:34 ..
-rw-r--r--  1 root root  736 Apr 14 00:35 authorized_keys
-rw-------  1 root root  736 Apr 14 00:33 id_dsa
-rw-------  1 root root 1.7K Apr 28 02:36 id_rsa
-rw-r--r--  1 root root  394 Apr 28 02:36 id_rsa.pub
-rw-r--r--  1 root root 4.2K Apr 28 01:55 known_hosts]]></screen><para>A questo punto dobbiamo copiare la nostra chiave pubblica <emphasis role="strong">in tutti i dispositivi di cui vogliamo effettare il backup</emphasis> con il comando: </para><screen><![CDATA[Nemesys:~# scp .ssh/id_rsa.pub root@192.168.105.102:/etc/dropbear/authorized_keys
]]><![CDATA[
The authenticity of host '192.168.105.102 (192.168.105.102)' can't be established
RSA key fingerprint is ad:be:ea:ed:03:1f:74:2c:00:78:a6:e2:79:28:9d:49.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.105.102' (RSA) to the list of known hosts.
]]><![CDATA[
Enter passphrase for key '/root/.ssh/id_dsa': <INSERIRE LA PASSWORD INSERITA AL MOMENTO DELLA GENERAZIONE DELLE CHIAVI>
root@192.168.105.102's password: <INSERIRE LA PASSWORD DEL DISPOSITIVO>
id_rsa.pub                                 100%  394     0.4KB/s   00:00]]></screen><para>Ora verifichiamo che tutto sia andato a buon fine semplicemente elencando il file di una cartella direttamente con ssh attraverso il comando: </para><screen><![CDATA[Nemesys:~# ssh admin@192.168.105.102 ls /etc/]]></screen><para>il risultato dovrebbe essere l'elenco dei files della cartella /etc/ del dispositivo 192.168.105.102 </para></section><section><title>Script</title><para>Ora che l'accesso al dispositivo è garantito e che il file è stato generato con tutti gli ip dei dispositivi passiamo allo script: </para><screen><![CDATA[Nemesys:~# vi AirOSOlsrdbck.sh]]></screen><para>e inseriamo: </para><screen><![CDATA[ #!/bin/sh
DATE=date +%d-%m-%y
DIR="/home/backup/OLSR"
mkdir -p $DIR/$DATE
echo "I files verranno salvati in $DIR/$DATE"
for ip in cat iphosts.bck; do
if ping -c 1 -w 5 $ip &>/dev/null
then
scp root@$ip:/etc/olsrd.conf $DIR/$DATE/$ip
sleep 5
fi
done]]></screen><para>Al primo avvio verranno create le cartelle<emphasis> /home/backup/OLSR/&lt;data&gt;</emphasis> in cui per ogni dispositivo verrà creato un file con nome l'ip del dispositivo. Inoltre le variabili $DATE e $DATA possono essere modificate per poter personalizzare la posizione del backup. </para><para>Non dimentichiamoci infine di dare i permessi di esecuzione allo script con il comando: </para><screen><![CDATA[Nemesys:~# chmod +x  AirOSOlsrdbck.sh]]></screen><para>Per avviarlo : </para><screen><![CDATA[Nemesys:~# ./AirOSOlsrdbck.sh]]></screen><para>Bye Bye! <inlinemediaobject><imageobject><imagedata depth="16" fileref="http://www.nnx.me//moin_static197/ninuxtheme02/img/smile4.png" width="16"/></imageobject><textobject><phrase>;-)</phrase></textobject></inlinemediaobject> </para></section></section></article>