Linux Guide e TrucchiSlider Sx

Script per backup incrementale con rsync

Backup da pc o server linux verso un Nas

Premesse:

 /media/nas : cartella montata in locale del NAS di rete

192.168.1.100 : indirizzo IP del NAS

fede.txt : file txt di controllo che deve essere creato nella dir del NAS, lo script verifica se esiste/se riesce a raggiungerlo e dunque se la cartella condivisa è raggiungibile

Script

#!/bin/sh
#Autore: federico villa – www.vilnet.it
#Descrizione: Backup tramite rsync da pc/server linux verso un Nas

#Variabili
LOCAL=/dir_da_salvare
TARGET=/mnt/nas
DIRBACKUP=cartella_specifica_dentro_cui_mettere_il_backup
HOST=192.168.1.100
LOG=/home/feden/backup.log #percoso dove salva il log temporaneo
USER=utente
PWD=passord
SERVER=nome_server_o_pc
EMAIL=mail@dominio.it
EMAIL2=mail2@dominio.it

#Inizio log
echo $(date +”%d/%m/%Y”) | cat > $LOG
echo $(date +”%H:%M.%S”) Backup iniziato… | cat >> $LOG

#montaggio nas
ping -c 3 $HOST
umount $TARGET
mount -t cifs //$HOST/$DIRBACKUP $TARGET -o username=$USER,password=$PWD

# VERIFICA CHE IL DISCO E’ MONTATO
if [ -e /mnt/nas/fede.txt ]
then

  #Rsync
  rsync –delete -avh $LOCAL $TARGET | cat >> $LOG

  #Fine log
  echo $(date +”%H:%M.%S”) Backup finito! | cat >> $LOG

  #Invio mail
  mail -s “Procedura backup per il sever $SERVER” $EMAIL < “$LOG”

  exit 0

else
    echo “ERRORE: Impossibile eseguire il backup” | mail -s “Procedura backup per il sever $SERVER” $EMAIL
    echo “ERRORE: Impossibile eseguire il backup” | mail -s “Procedura backup per il sever $SERVER” $EMAIL2
exit 1
fi

Variante dello script precedente (cambia il controllo della share condivisa)

#!/bin/bash
#Autore: federico villa – www.vilnet.it
#Descrizione: Backup tramite rsync da pc/server linux verso un Nas

#Variabili
LOCAL=/dir_da_salvare
TARGET=/mnt/nas
DIRBACKUP=cartella_specifica_dentro_cui_mettere_il_backup
HOST=192.168.1.100
LOG=/home/feden/backup.log #percoso dove salva il log temporaneo
USER=utente
PWD=passord
SERVER=nome_server_o_pc
EMAIL=mail@dominio.it

#Inizio log
echo $(date +”%d/%m/%Y”) | cat > $LOG
echo $(date +”%H:%M.%S”) Backup iniziato… | cat >> $LOG

#montaggio nas
ping -c 5 $HOST
umount $TARGET
mount -t cifs //$HOST/$DIRBACKUP $TARGET -o username=$USER,password=$PWD

# VERIFICA CHE IL DISCO E’ MONTATO
MOUNTED=$(df | grep $TARGET |awk ‘{print $6}’)
if [ “$MOUNTED” == “$TARGET” ]
then

  #Rsync
  rsync –delete -avh $LOCAL $TARGET | cat >> $LOG

  #Fine log
  echo $(date +”%H:%M.%S”) Backup finito! | cat >> $LOG

  #Invio mail
  mail -s “Procedura backup per il sever $SERVER” $EMAIL < “$LOG”

  exit 0

else
   echo “ERRORE: Impossibile eseguire il backup” | mail -s “Procedura backup per il sever $SERVER” $EMAIL
exit 1
fi