Skip to content
Snippets Groups Projects
Verified Commit bd8ccedb authored by David Beniamine's avatar David Beniamine
Browse files

Merge branch 'master' of gitlab.tetras-libre.fr:tetras-libre/Tetras-back into srv

parents e1bd60dc ec6c696c
Branches srv
No related tags found
No related merge requests found
Pipeline #198 passed
...@@ -54,7 +54,7 @@ do_log(){ ...@@ -54,7 +54,7 @@ do_log(){
echo "Sauvegarde NoCloud - $@" echo "Sauvegarde NoCloud - $@"
} }
sauvegarde_serveur(){ dump_databases(){
if $mysql if $mysql
then then
do_log "Sauvegarde mysql" do_log "Sauvegarde mysql"
...@@ -82,6 +82,11 @@ sauvegarde_serveur(){ ...@@ -82,6 +82,11 @@ sauvegarde_serveur(){
do_log "Dossier de sauvegarde gitlab non trouvé, pensez à supprimer manuellement les anciennes sauvegardes" do_log "Dossier de sauvegarde gitlab non trouvé, pensez à supprimer manuellement les anciennes sauvegardes"
fi fi
fi fi
}
sauvegarde_serveur(){
dump_databases
do_log "Creation de l'archive configuration serveur" do_log "Creation de l'archive configuration serveur"
[ ! -z "$SERVICES" ] && systemctl stop $SERVICES [ ! -z "$SERVICES" ] && systemctl stop $SERVICES
tar czf$vopt /tmp/serveur.tgz $srv_directories tar czf$vopt /tmp/serveur.tgz $srv_directories
...@@ -113,6 +118,19 @@ sauvegarde_donnees(){ ...@@ -113,6 +118,19 @@ sauvegarde_donnees(){
fi fi
} }
sauvegarde_clone(){
dump_databases
cmd="rsync -aAX /"
EXCLUDE='/dev,/proc,/var/run,/var/cache,/var/backups,/var/lock,/sys,/tmp,/run,/mnt,/media,/lost+found"'
for filtre in $(echo "$EXCLUDE,$EXCLUDEFROMCLONE" | sed 's/,/ /g')
do
cmd="$cmd --exclude=$filtre"
done
cmd="$cmd $dest"
do_log "Running : '$cmd'"
$cmd
}
sauvegarde_seafile(){ sauvegarde_seafile(){
# On sauvegarde le contenu des bibliothèques # On sauvegarde le contenu des bibliothèques
echo "Sauvegarde - Contenu Seafile" echo "Sauvegarde - Contenu Seafile"
...@@ -160,6 +178,8 @@ usage(){ ...@@ -160,6 +178,8 @@ usage(){
echo " -p | --postgresql Sauvegarde postgresql (implique --config)" echo " -p | --postgresql Sauvegarde postgresql (implique --config)"
echo " -m | --mysql Sauvegarde mysql (implique --config)" echo " -m | --mysql Sauvegarde mysql (implique --config)"
echo " -c | --config Sauvegarde le serveur ($srv_directories)" echo " -c | --config Sauvegarde le serveur ($srv_directories)"
echo " -C | --Clone exclude Effectue un clone rsync, exclude est une liste
de dossier a exclure separe par des ','"
echo " -g | --gitlab Sauvegarde gitlab (implique --config)" echo " -g | --gitlab Sauvegarde gitlab (implique --config)"
echo " -u | --unifi Sauvegarde unifi (/var/lib/unifi, implique echo " -u | --unifi Sauvegarde unifi (/var/lib/unifi, implique
--config)" --config)"
...@@ -186,6 +206,7 @@ mysql=false ...@@ -186,6 +206,7 @@ mysql=false
postgres=false postgres=false
encfs=false encfs=false
archive=false archive=false
clone=false
MIN_SIZE=$((1024*1024)) MIN_SIZE=$((1024*1024))
warn_only=false warn_only=false
post_cmd="" post_cmd=""
...@@ -195,7 +216,7 @@ for arg in "$@"; do ...@@ -195,7 +216,7 @@ for arg in "$@"; do
shift shift
set -- "$@" `echo $arg | sed 's/^-\(-.\).*$/\1/'` set -- "$@" `echo $arg | sed 's/^-\(-.\).*$/\1/'`
done done
optspec=":hvdcguws:mpe:i:aP:" optspec=":hvC:dcguws:mpe:i:aP:"
while getopts "$optspec" optchar; do while getopts "$optspec" optchar; do
case "${optchar}" in case "${optchar}" in
h) h)
...@@ -248,6 +269,11 @@ while getopts "$optspec" optchar; do ...@@ -248,6 +269,11 @@ while getopts "$optspec" optchar; do
P) P)
post_cmd="$OPTARG" post_cmd="$OPTARG"
;; ;;
C)
clone=true
EXCLUDEFROMCLONE="$OPTARG"
ACTIONS="\nsauvegarde_clone"
;;
*) *)
echo "Option inconnue -$optchar" echo "Option inconnue -$optchar"
usage usage
...@@ -293,7 +319,10 @@ then ...@@ -293,7 +319,10 @@ then
fi fi
parent_dir=$dest parent_dir=$dest
if ! $clone
then
dest="$parent_dir/$date$postfix" dest="$parent_dir/$date$postfix"
fi
mkdir "$dest" mkdir "$dest"
[ ! -d "$dest" ] && liberer_espace mkdir "$dest" [ ! -d "$dest" ] && liberer_espace mkdir "$dest"
......
...@@ -30,6 +30,7 @@ use Data::Dumper; ...@@ -30,6 +30,7 @@ use Data::Dumper;
use Cpanel::JSON::XS qw(encode_json); use Cpanel::JSON::XS qw(encode_json);
use Log::Dispatch; use Log::Dispatch;
use Getopt::ArgParse; use Getopt::ArgParse;
use Try::Tiny;
my $Logger; my $Logger;
my %running_backups; my %running_backups;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment