diff --git a/backup.sh b/backup.sh index 3fbbd133f621198cb883334815d896b005b864f4..831e6e386269ff0b0249b27a070db44e556ff3ca 100755 --- a/backup.sh +++ b/backup.sh @@ -5,6 +5,12 @@ if [ ! -z "$1" ]; then conf_file=$1 shift fi +if [ -z "$1" ]; then + mode="auto" +else + mode="$1" +fi + source $DIR/inc.sh exec &> >(tee -a "$log_file") @@ -13,8 +19,14 @@ exit_on_fail(){ echo "Done" } + +# Needs to params +# code=[0-9]+ +# mode="auto|full|inc" retrie_on_fail(){ - if [ $1 -ne 0 ]; then + code="$1" + mode="$2" + if [ $code -ne 0 ]; then keep=$(($BK_KEEP_FULL-1)) if [ $keep -gt 0 ]; then run_duplicity remove-all-inc-of-but-n-full $keep --force @@ -25,14 +37,33 @@ retrie_on_fail(){ glob rm $remotedir/*-new-signatures* EOF fi - backup "cleaned" + backup $mode "cleaned" leave $? fi } + +# +# Needs to params : +# mode = "auto|full|inc" +# retries = "cleaned|" backup(){ - retries=$1 + case $1 in + "auto") + action="backup" + ;; + "full") + action="full" + ;; + "inc") + action="incremental" + ;; + "*") + echo "Unknowkn backup mode '$1'" + exit 1 + esac shift + retries=$1 cleanup echo "Removing old backups" @@ -45,7 +76,8 @@ backup(){ export PASSPHRASE="$encpass" export FTP_PASSWORD="$ftppass" set -x - /usr/bin/duplicity --verbosity $verbosity \ + /usr/bin/duplicity $action \ + --verbosity $verbosity \ --timeout $timeout \ --full-if-older-than $BK_FULL_FREQ \ --include ${bckplist// / --include } \ @@ -69,7 +101,7 @@ backup(){ collection_state echo "All Done" } -backup +backup $mode ret=$? retrie_on_fail $ret leave $ret