Italiano English
Edit History Actions

BackupOLSRAirOS

Introduzione

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

Requisiti

1) Storage raggiungibile da tutti i nodi dove salvare tutti i files di configurazione

2) Server da dove eseguire lo script e raggiungibile da tutti nodi

3) Un file iphosts.bkc contenente tutti gli ip dei devices da raggiungere

4) Accesso ssh con chiave pubblica al dispositivo (funziona anche senza ma bisogna inserire la password ad ogni devices!!)

Creazione del file iphosts.bck

Chiaramente il percorso del file va specificato nello script. In questa guida lo considereremo nella stessa cartella dove risiederà lo script.

Il comando per generare il file è il seguente:

Nemesys:~# touch iphosts.bck && echo -e "192.168.105.102 \n192.168.105.103" > iphosts.bck

in questo caso nel file verranno inseriti gli ip 192.168.105.102 e 192.168.105.103

Generazione delle chiavi

Ora passiamo alla generazione delle chiavi per l'accesso al dispositivo senza password:

Nemesys:~# ssh-keygen -t rsa

L'output dovrebbe essere come quello sotto:

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|
+-----------------+

Verifichiamo la presenza delle chiavi appena generate con il comando:

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

A questo punto dobbiamo copiare la nostra chiave pubblica in tutti i dispositivi di cui vogliamo effettare il backup con il comando:

Nemesys:~# scp .ssh/id_rsa.pub root@192.168.105.102:/etc/dropbear/authorized_keys

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.

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

Ora verifichiamo che tutto sia andato a buon fine semplicemente elencando il file di una cartella direttamente con ssh attraverso il comando:

Nemesys:~# ssh admin@192.168.105.102 ls /etc/

il risultato dovrebbe essere l'elenco dei files della cartella /etc/ del dispositivo 192.168.105.102

Script

Ora che l'accesso al dispositivo è garantito e che il file è stato generato con tutti gli ip dei dispositivi passiamo allo script:

Nemesys:~# vi AirOSOlsrdbck.sh

e inseriamo:

 #!/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

Al primo avvio verranno create le cartelle /home/backup/OLSR/<data> 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.

Non dimentichiamoci infine di dare i permessi di esecuzione allo script con il comando:

Nemesys:~# chmod +x  AirOSOlsrdbck.sh

Per avviarlo :

Nemesys:~# ./AirOSOlsrdbck.sh

Bye Bye! ;-)