Browse Source

up

master v1.0
Samuel VERMEULEN 2 years ago
parent
commit
7c87b77845
  1. 120
      backup.sh

120
backup.sh

@ -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…
Cancel
Save