up
This commit is contained in:
parent
f8416b5b13
commit
7c87b77845
120
backup.sh
Executable file
120
backup.sh
Executable file
@ -0,0 +1,120 @@
|
||||
#!/bin/sh
|
||||
|
||||
## Première utilisation
|
||||
# backup.sh -i <chemin local du dépot de sauvegarde>
|
||||
|
||||
## Utilisation
|
||||
# backup.sh -r <chemin local du dépot de sauvegarde> -h <ip/host du serveur distant> -p <port ssh. Ne rien indiquer si vous utlisez le port par défaut (21)> -s <Paraphrase du dépot. Ne rien indiquer si aucune n'a été configurée>
|
||||
|
||||
set -e
|
||||
|
||||
while getopts "i: r: s: h: p:" opt; do
|
||||
case $opt in
|
||||
i)
|
||||
repo=$OPTARG
|
||||
echo "1. Sans Paraphrase ?"
|
||||
echo "2. Avec Paraphrase ?"
|
||||
echo "Entrez 1 ou 2 :"
|
||||
read encrypt
|
||||
if [ $encrypt == "1" ]
|
||||
then
|
||||
borg init -e none $repo
|
||||
exit 0
|
||||
else
|
||||
borg init -e repokey $repo
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
|
||||
r)
|
||||
repo=$OPTARG
|
||||
;;
|
||||
|
||||
s)
|
||||
secret=$OPTARG
|
||||
;;
|
||||
|
||||
h)
|
||||
host=$OPTARG
|
||||
;;
|
||||
|
||||
p)
|
||||
port=$OPTARG
|
||||
;;
|
||||
|
||||
|
||||
esac
|
||||
done
|
||||
|
||||
# Préparation
|
||||
mkdir -p /srvbak
|
||||
if [ ! $port ]
|
||||
then
|
||||
sshfs -o allow_other root@$host:/ /srvbak
|
||||
else
|
||||
sshfs -p $port -o allow_other root@$host:/ /srvbak
|
||||
fi
|
||||
|
||||
# Config
|
||||
export BORG_REPO=$repo
|
||||
export BORG_PASSPHRASE=$secret
|
||||
|
||||
info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; }
|
||||
trap 'echo $( date ) Arrêt >&2; exit 2' INT TERM
|
||||
|
||||
# Backup
|
||||
info "backup..."
|
||||
|
||||
borg create \
|
||||
--verbose \
|
||||
--filter AME \
|
||||
--list \
|
||||
--stats \
|
||||
--show-rc \
|
||||
--compression lz4 \
|
||||
--exclude-caches \
|
||||
--exclude '/srvbak/mnt/*' \
|
||||
--exclude '/srvbak//var/tmp/*' \
|
||||
--exclude '/srvbak/dev/*' \
|
||||
--exclude '/srvbak/tmp/*' \
|
||||
--exclude '/srvbak/proc/*' \
|
||||
--exclude '/srvbak/media/*' \
|
||||
--exclude '/srvbak/run/*' \
|
||||
--exclude '/srvbak/srv/*' \
|
||||
--exclude '/srvbak/sys/*' \
|
||||
--exclude '/srvbak/lost+found/*' \
|
||||
\
|
||||
::$host'-{now}' \
|
||||
/srvbak \
|
||||
|
||||
backup_exit=$?
|
||||
|
||||
# Optimisation sauvegardes
|
||||
info "Optimisation des Sauvegardes..."
|
||||
|
||||
borg prune \
|
||||
--list \
|
||||
--prefix $host'-' \
|
||||
--show-rc \
|
||||
--keep-daily 7 \
|
||||
--keep-weekly 4 \
|
||||
--keep-monthly 6 \
|
||||
|
||||
prune_exit=$?
|
||||
|
||||
# Fin
|
||||
global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit ))
|
||||
|
||||
if [ ${global_exit} -eq 1 ];
|
||||
then
|
||||
info "Backup terminé avec AVERTISSEMENT !!"
|
||||
fi
|
||||
|
||||
if [ ${global_exit} -gt 1 ];
|
||||
then
|
||||
info "Backup terminé en ERREUR !!"
|
||||
fi
|
||||
|
||||
fusermount -u /srvbak
|
||||
|
||||
exit ${global_exit}
|
Loading…
x
Reference in New Issue
Block a user