DAR

De Marmits Wiki
Aller à la navigationAller à la recherche

source

répertoire

mkdir -p /var/partage/admin_scripts/backup_scripts
mkdir -p /var/partage/backups

principe

au depart pour une référence. (selon la configuration du fichier common.dcf) 

/var/partage/admin_scripts/backup_scripts/backup_initial.sh

#!/bin/sh
DIR=/var/partage/backups
ADMINSCRIPTSDIR=`dirname $0`

FILE=${DIR}/`/bin/date -I`_data
FILEORIGINE=$DIR/*_data.*.dar
date
if [ ! -f $FILEORIGINE ]; then
        if [ $? -ne 0 ]; then
                echo "Backup full: can not create month backup dir ($DIR)"
                exit 2
        else
                # Sauvegarde les dossiers et les fichiers decrits dans le fichier de configuration
                /usr/bin/dar -B ${ADMINSCRIPTSDIR}/common.dcf -c $FILE > /dev/null

                # Teste la sauvegarde
                /usr/bin/dar -t $FILE > /dev/null

                if [ $? -ne 0 ]; then
                echo "Backup full: Archive created but test FAILED"
                exit 3
                fi

                date
                echo "dar finished"
                exit 0
        fi
fi

puis en cron 1 fois par jour
/var/partage/admin_scripts/backup_scripts/backup_diff.sh

#!/bin/bash
EMAILTO="g.stolaric@gwinfo.fr"
DIR=/var/partage/backups
ADMINSCRIPTSDIR=`dirname $0`
MONTHDIR=${DIR}
FILE=${DIR}/`/bin/date -I`_diff
PREV=`/bin/ls -tr1 $DIR/*.dar | tail -n 1`
MESSAGE=""

MESSAGE=${MESSAGE}`date`
MESSAGE=${MESSAGE}"\n"
MESSAGE=${MESSAGE}$FILE"\n"
#date

# Sauvegarde les dossiers et les fichiers decrits dans le fichier de configuration
/usr/bin/dar -B ${ADMINSCRIPTSDIR}/common.dcf -c $FILE -A ${PREV%%.*} > /dev/null

# Teste la sauvegarde
/usr/bin/dar -t $FILE > /dev/null

if [ $? -ne 0 ]; then
        MESSAGE=${MESSAGE}"Backup diff: Archive created but test FAILED"
        MESSAGE=${MESSAGE}"\n"
        exit 3
fi

MESSAGE=${MESSAGE}`date`
MESSAGE=${MESSAGE}"\n"
MESSAGE=${MESSAGE}"dar finished"

echo -e $MESSAGE | mail -s "message backup différencielle" $EMAILTO

exit 0

Restauration

rm -rf /var/partage/tmp/restored/* pour vider le repertoire de restauration
rm -rf /var/partage/backups/* // ATTENTION pour recommencer à zéro


Restaurer seulement les fichiers modifiés à une certaines date

sudo sh /var/partage/admin_scripts/backup_scripts/restore_full.sh 2019-08-27 /var/partage/tmp/restored/


Restaurer un ou plusieurs fichiers

dar -R /var/partage/tmp/ -x /var/partage/backups/2019-05-25_diff -g test.txt