Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Descrizione:
- # Questo semplice script crea un backup di immagine sd locale di un raspberry pi remoto in una cartella locale
- # usando ssh, dd e la pipe unix
- # Requisiti:
- # - ssh e sshpass
- # - notify-osd
- RASPBERRY_USER=pi
- #sostituire con il nome del tuo utente sul Raspberry Pi
- #lo script presume che questo utente sia nel file sudoers del Raspberry
- RASPBERRY_PASS=tua_password
- #sostituire con la tua password sul Raspberry Pi
- RASPBERRY_ADDR=192.168.1.147
- #sostituire con l'indirizzo IP del raspberry (o con il nome dell'host se si sta utilizzando un server DNS dinamico)
- BACKUP_FOLDER=/home/utente/cartella_backup/
- #sostituire con il percorso alla tua cartella di destinazione del backup locale
- BACKUP_NAME=$(date +"%Y%m%d_%H%M")
- #nome del file immagine
- BACKUP_IMAGE=/home/utente/cartella_backup/$BACKUP_NAME.img
- #percorso assoluto dell'immagine generata
- # sostituire la parte "/home/utente/cartella_backup/" con il percorso usato per la variabile BACKUP_FOLDER
- #Notifica all'utente che lo script sta iniziando, utile se si esegue questo script con cron
- notify-send "RASPBERRY BACKUP: Avvio del processo di backup, raspberry pi: $RASPBERRY_ADDR"
- # Prova a pingare il lampone, se non riesce a trovarlo, esce subito
- ping -c 3 $RASPBERRY_ADDR > /dev/null 2> /dev/null
- if [ $? -ne 0 ]; then
- notify-send "RASPBERRY BACKUP: Non posso fare il ping al lampone: $RASPBERRY_ADDR esco"
- exit 1
- fi
- # Se la cartella di destinazione non esiste, la crea
- if [ ! -d "$BACKUP_FOLDER" ]; then
- mkdir $BACKUP_FOLDER
- fi
- notify-send "RASPBERRY BACKUP: Avvio del trasferimento SSH, non spegnere il PC!!!"
- #Questo apre una connessione ssh con il raspberry
- #l'uso di dd e del pipe unix crea un'immagine del dispositivo locale
- sshpass -p $RASPBERRY_PASS ssh $RASPBERRY_USER@$RASPBERRY_ADDR 'echo $RASPBERRY_PASS | sudo -S dd if=/dev/mmcblk0' | dd of=$BACKUP_IMAGE
- # Controlla se è tutto ok
- if [ $? -ne 0 ]; then
- notify-send "RASPBERRY BACKUP: Qualcosa è andato storto con la trasmissione ssh, i file temporanei sono stati cancellati, riprova!"
- rm $BACKUP_IMAGE
- exit 1
- fi
- notify-send "RASPBERRY BACKUP: Trasferimento completato, compressione dell'immagine..."
- #Compressione dell'immagine
- tar -pczf $BACKUP_FOLDER/$BACKUP_NAME.tar.gz $BACKUP_IMAGE
- #Controlla il risultato della compressione
- #se qualcosa è andato storto restituisce un messaggio
- if [ $? -ne 0 ]; then
- notify-send "RASPBERRY BACKUP: Backup completato, MA non è stato possibile comprimere l'immagine"
- exit 1
- fi
- #Elimina i file non compressi
- rm $BACKUP_IMAGE
- notify-send "RASPBERRY BACKUP: Backup completato! Il backup è stato salvato in $BACKUP_FOLDER"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement