== 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': root@192.168.105.102's password: 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/'' 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! ;-)