#! /bin/sh SOURCE="/" MONTAGE="/mnt/sauvegarde" DESTINATION1="/mnt/sauvegarde/BANK1" DESTINATION2="/mnt/sauvegarde/BANK2" BANKSTATUS="/mnt/sauvegarde/BANK.status" JOURNAL="/root/backup/rsync-backup.log" LASTDATE="/root/backup/rsync-backup.date" NBJOUR=$((($(date -u +%s) - $(date -ur $LASTDATE +%s))/86400)) APPELUSER="/usr/local/sauvegarde/rsync-backup-user.date" NBJOURUSER=$((($(date -u +%s) - $(date -ur $APPELUSER +%s))/86400)) # test si la date d'échéance est arrivée if [ $NBJOUR -lt 7 ]; then echo "`date` Pas le moment" >> $JOURNAL if [ $NBJOURUSER -lt 7 ]; then touch -t 201701010000 $APPELUSER else exit fi fi # Essaye de monter le disque dur et recherche dans quel conteneur enregistrer la sauvegarde #A-CORRIGER mount UUID=8498c62b-ad6f-4966-990e-822f729a01c3 $MONTAGE # A modifier avec l'UUID de votre de disque de sauvegarde #A-CORRIGER if [ -f $BANKSTATUS ]; then echo "`date` Montage disque OK" >> $JOURNAL VALSAUVEGARDE=`cat $BANKSTATUS` if [ "$VALSAUVEGARDE" = "BANK1" ]; then DESTINATION=$DESTINATION2 VALSAUVEGARDE="BANK2" elif [ "$VALSAUVEGARDE" = "BANK2" ]; then DESTINATION=$DESTINATION1 VALSAUVEGARDE="BANK1" else echo "`date` Echec sauvegarde SYSTEME: Contenu $BANKSTATUS non conforme" >> $JOURNAL umount $MONTAGE exit fi else echo "`date` Echec sauvegarde SYSTEME: fichier $BANKSTATUS introuvable" >> $JOURNAL exit fi # Sauvegarde du système if [ -d $DESTINATION ] ; then rsync_backup_include='/root/backup/rsync-backup-include' dpkg --get-selections "*" > $DESTINATION/dpkg-selections.list debconf-get-selections > $DESTINATION/debconf-selections /usr/bin/rsync -a --delete-after $SOURCE $DESTINATION --exclude-from=$rsync_backup_include --exclude='**' touch $LASTDATE echo "`date` Sauvegarde SYTEME OK: sur $DESTINATION" >> $JOURNAL echo $VALSAUVEGARDE > $BANKSTATUS # umount $MONTAGE else echo "`date` Echec sauvegarde SYSTEME: répertoire $DESTINATION introuvable" >> $JOURNAL umount $MONTAGE exit fi # Variables d'environnement SOURCE="/home" DESTINATION="/mnt/sauvegarde" ACTUEL="/mnt/sauvegarde/backuphome/Actuel" BACKUP="/mnt/sauvegarde/backuphome/$(date +'%d-%m-%Y')" T="$DESTINATION/backuphome/.superpointeur.txt" LISTEEXCLUSIONS="/root/backup/rsync-backup-include2" # Codes d'erreur E_REPABSENT=65 E_POINTEURABSENT=66 # test 1 if [ -d $DESTINATION/backuphome ] && [ -d $DESTINATION/.backuphome ] ; then # les répertoires existent echo "répertoires trouvés" else echo "`date` Echec sauvegarde HOME: répertoires de sauvegarde introuvables." >> $JOURNAL # Vérifier si le support de sauvegarde est monté umount $MONTAGE exit $E_REPABSENT fi # fin test 1 # Test 2 if [ -e "$T" ] ; then # le répertoire d'archivage sécurisé est déjà monté echo "`date` Echec sauvegarde HOME Le dossier sécurisé est déjà monté." >> $JOURNAL # Démonter le répertoire sécurisé avant l'utilisation du script." umount $MONTAGE exit $E_POINTEURABSENT else # Il faut monter le répertoire d'archivage sécurisé chmod 750 $DESTINATION/backuphome #Déchiffrage du répertoire #Remplacer par l'utilisateur de confiance où est stocké le mot de passe #A-CORRIGER cat /home//Documents/.clefsauvegarde | encfs --stdinpass -v "$DESTINATION/.backuphome" "$DESTINATION/backuphome" #A-CORRIGER # Coffre ouvert la sauvegarde sécurisée va démarrer! # crée le répertoire Backup du jour mkdir -p "$BACKUP" # crée la sauvegarde /usr/bin/rsync -a --delete --exclude-from $LISTEEXCLUSIONS --backup --backup-dir="$BACKUP" "$SOURCE" "$ACTUEL" --exclude='**' # supprime le répertoire backup s'il est vide rmdir --ignore-fail-on-non-empty "$BACKUP" # démonte le répertoire en clair fusermount -u "$DESTINATION/backuphome" chmod 440 $DESTINATION/backuphome echo "`date` Sauvegarde HOME OK" >> $JOURNAL umount $MONTAGE fi # fin test 2 exit 0