Files
syno_scripts/backup.sh
2018-03-13 08:04:28 +01:00

65 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
# Backup de dossiers du NAS vers un disque externe
# Variables
LOG=/volume1/homes/admin/logs # dossier du fichier .log
JOUR=$(date +"%Y-%m-%d %T") # http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/
depart=/volume1/ # volume à sauvegarder
arrivee=/volumeUSB2/usbshare/ # volume de sauvegarde
folders="trimultimedia" # liste des dossiers à sauvegarder (séparés par un espace)
success=false
touch $LOG/backup.log # création du fichier log
echo $JOUR >> $LOG/backup.log
echo "$JOUR Démarrage du transfert" >> $LOG/backup.log
for i in $folders; do
origine=$depart$i
destination=$arrivee$i
if [ -d "$origine" ]; then
taille=$(du -sk "$origine" | cut -f1) # taille dossier origine
free=$(df -k "$arrivee" | awk '/[0-9]%/{print $(NF-2)}') # place libre sur dest
#echo "$taille $free" >> $LOG/backup.log
if [ "$free" -gt "$taille" ]; then
echo "$JOUR Nom de la sauvegarde: $i" >> $LOG/backup.log
if [ ! -d "$destination" ]; then
echo "$JOUR Le dossier destination n'existe pas! On le crée." >> $LOG/backup.log
mkdir "$destination"
fi
#rsync -av --delete --exclude-from=/volume1/homes/admin/ListeExclusionRsync $SOURCE1/ $DEST1
rsync -av --delete --exclude-from=/volume1/homes/admin/ListeExclusionRsync --log-file=$LOG/backup.log $origine/ $destination
echo "$JOUR Sauvegarde $i terminée" >> $LOG/backup.log
synodsmnotify @administrators "[backup.sh]" "Sauvegarde <b>$i</b> terminée"
success=true
else
echo "$JOUR Copie impossible:" >> $LOG/backup.log
echo "$JOUR -taille de la sauvegarde: $taille" >> $LOG/backup.log
echo "$JOUR -place libre: $free" >> $LOG/backup.log
synodsmnotify @administrators "[backup.sh]" "Sauvegarde <b>$i</b> impossible. <u>Espace disque insuffisant:</u><br> -taille de la sauvegarde: <i>$taille ko</i> <br> -place libre: <i>$free ko</i>"
echo -e "Place libre sur le disque insuffisante" | /opt/bin/nail -s "[NAS] Sauvegarde impossible" bruno@funnymac.com
fi
fi
done
echo "$JOUR Fin du transfert" >> $LOG/backup.log
if [ "$success" = true ]; then
echo -e "$JOUR Les dossiers ont ete sauvegarde" | /opt/bin/nail -s "[NAS] Sauvegarde reussie" bruno@funnymac.com
fi
exit