diff --git a/backup_mysql.sh b/backup_mysql.sh index 44a82cb..12a9a7e 100755 --- a/backup_mysql.sh +++ b/backup_mysql.sh @@ -21,19 +21,19 @@ ##################################################################### # # -BKP_USER="mysqlbackupuser" # Enter the username for backup -BKP_PASS="$(cat $HOME/.password.txt)" # Enter the password of the backup user +BKP_USER="mysqlbackupuser" # Enter the username for backup +BKP_PASS="$(cat $HOME/.password.txt)" # Enter the password of the backup user BKP_BASE_DIR=$(dirname "$0") # -BKP_DEST="$HOME/Documents/MySQL" # Enter the Backup directory,change this if you have someother location +BKP_DEST="$HOME/Documents/MySQL" # Enter the Backup directory,change this if you have someother location if [ ! -d $BKP_DEST ]; then mkdir $BKP_DEST; fi # ## Note: Scripts will delete all backup which are older then BKP_DAYS## # # D:3 W:22 M:93 -BKP_DAYS="3" # Enter how many days backup you want, -BKP_WEEKS="22" -BKP_MONTHS="93" +BKP_DAYS=3 # Enter how many days backup you want, +BKP_WEEKS=21 # 3*7 +BKP_MONTHS=93 # 3*31 # ########### Use This for only local server ############################# MYSQL_HOST="localhost" @@ -46,6 +46,7 @@ MYSQL_HOST="localhost" ##################### Get Backup DATE ################################## # #BKP_DATE="$(date +"%A_%d-%m-%Y_%H-%M-%S")"; +# Pour les date en français: LC_ALL="fr_FR.UTF-8" date +"%B_%Y" #lundi=date +%u if [ $(date +%d) = "01" ]; then # 1er du mois => octobre_2019 BKP_DATE="$(date +"%B_%Y")"; @@ -110,7 +111,7 @@ do $MYSQLDUMP -u $BKP_USER -h $MYSQL_HOST -p$BKP_PASS -r$BKP_FILENAME $db $GZIP -9 $BKP_FILENAME - server1="ftp.cluster011.ovh.net:www/backup/SilverBook/Bases_MySQL/" + server1="ftp.cluster011.ovh.net:backup/SilverBook/Bases_MySQL/" scp "$BKP_GZ_FILENAME" funnymac@"$server1" result=$? @@ -126,36 +127,72 @@ do fi done + #########To delete all backup files older then BKP_DAYS ################# # -#find $BKP_DEST -type f -mtime +$BKP_DAYS -delete +# Nettoyage serveurs locaux: -# xxx.S44_2019.sql.gz -# find . -name "*.sql.gz" -mtime +$BKP_WEEKS | grep -E 'S\d{2}_\d{4}' -# xxx.octobre_2019.sql.gz -# find . -name "*.sql.gz" -mtime +$BKP_MONTHS | grep -E 'janvier|fevrier|mars|avril|mai|juin|juillet|aout|septembre|octobre|novembre|decembre' -# xxx.Mercredi_30-10-2019_11-33-17.sql.gz +find $BKP_DEST -name "*.sql.gz" -mtime +$BKP_DAYS | grep -v -E '(January|February|March|April|May|June|July|August|September|October|November|December)|(S\d{2}_\d{4})' | xargs rm -f +#gfind /Users/bruno/Documents/MySQL -mtime +93 -iregex '.*\(January\|February\|March\|April\|May\|June\|July\|September\|October\|November\|December\).*' -#find $BKP_DEST -name "*.sql.gz" -mtime +$BKP_DAYS | grep -v -E '(janvier|fevrier|mars|avril|mai|juin|juillet|aout|septembre|octobre|novembre|decembre)|(S\d{2}_\d{4})' > day.txt -find -E $BKP_DEST -mtime +$BKP_DAYS -regex '.*(janvier|fevrier|mars|avril|mai|juin|juillet|aout|septembre|octobre|novembre|decembre)|(S\d{2}_\d{4})' > day.txt -echo $? +find $BKP_DEST -name "*.sql.gz" -mtime +$BKP_WEEKS | grep -E 'S\d{2}_\d{4}' | xargs rm -f +#gfind /Users/bruno/Documents/MySQL -mtime +22 -regextype posix-extended -iregex '.*S[0-9]{2}_[0-9]{4}.*' -#find $BKP_DEST -name "*.sql.gz" -mtime +$BKP_WEEKS | grep -E 'S\d{2}_\d{4}' > week.txt -find -E $BKP_DEST -mtime +$BKP_WEEKS -regex 'S\d{2}_\d{4}' > week.txt -echo $? +find $BKP_DEST -name "*.sql.gz" -mtime +$BKP_MONTHS | grep -E '(January|February|March|April|May|June|July|August|September|October|November|December)' | xargs rm -f +# -#find $BKP_DEST -name "*.sql.gz" -mtime +$BKP_MONTHS | grep -E '(janvier|fevrier|mars|avril|mai|juin|juillet|aout|septembre|octobre|novembre|decembre)' > month.txt -find -E $BKP_DEST -mtime +$BKP_MONTHS -regex '.*(janvier|fevrier|mars|avril|mai|juin|juillet|aout|septembre|octobre|novembre|decembre)' > month.txt -echo $? +# Nettoyage serveurs distants: -# find . -name "*.sql.gz" | grep -E 'Monday|Tuesday' | xargs rm +#916_dest="/volume1/Backup/SilverBook/Bases_MySQL" +# ssh dsm916e "find /volume1/Backup/SilverBook/Bases_MySQL -type f -name '*.sql.gz' | grep -P '(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)' | xargs rm -f" +ssh dsm916e "set -o pipefail; find /volume1/Backup/SilverBook/Bases_MySQL -type f -mtime +$BKP_DAYS -name '*.sql.gz' | grep -P '(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)' | xargs rm -f" +retCode[1]=$? +errMsg[1]="daily backup bases @ dsm916" -# cd /volume1/Backup/SilverBook/Bases_MySQL -# find . -type f -mtime +3 -name '*.sql.gz' -delete +ssh dsm916e "set -o pipefail; find /volume1/Backup/SilverBook/Bases_MySQL -type f -mtime +$BKP_WEEKS -name '*.sql.gz' | grep -P 'S\d{2}_\d{4}' | xargs rm -f" +retCode[2]=$? +errMsg[2]="weekly backup bases @ dsm916" + +ssh dsm916e "set -o pipefail; find /volume1/Backup/SilverBook/Bases_MySQL -type f -mtime +$BKP_MONTHS -name '*.sql.gz' | grep -P '(January|February|March|April|May|June|July|August|September|October|November|December)' | xargs rm -f" +retCode[3]=$? +errMsg[3]="monthly backup bases @ dsm916" + +ovh_dest="/homez.528/funnymac/backup/SilverBook/Bases_MySQL" +# ssh ovh "find /homez.528/funnymac/backup/SilverBook/Bases_MySQL -type f -name '*.sql.gz' | grep -P '(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)' | xargs rm -f" + +ssh ovh "set -o pipefail; find $ovh_dest -type f -mtime +1 -name '*.sql.gz' | grep -P '(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)' | xargs rm -f" +retCode[4]=$? +errMsg[4]="daily backup bases @ ovh" + +ssh ovh "set -o pipefail; find $ovh_dest -type f -mtime +$BKP_WEEKS -name '*.sql.gz' | grep -P 'S\d{2}_\d{4}' | xargs rm -f" +retCode[5]=$? +errMsg[5]="weekly backup bases @ ovh" + +ssh ovh "set -o pipefail; find $ovh_dest -type f -mtime +$BKP_MONTHS -name '*.sql.gz' | grep -P '(January|February|March|April|May|June|July|August|September|October|November|December)' | xargs rm -f" +retCode[6]=$? +errMsg[6]="monthly backup bases @ ovh" + +# Codes retour: +# grep: 0 -> si lignes, 1 -> pas de lignes, 2 -> erreur +# find: 0 -> si ok, >0 -> si erreur +# xarg: 0 -> si ok, 123 à 127 si erreur, 1 -> autres erreurs + +for (( c=1; c<=6; c++ )) +do + #if [ ${retCode[$c]} -eq 1 ]; then + #echo "erreur" + #notification "Error on deleting remote files ${errMsg[$c]}" $result + #notification "Error" ${retCode[$c]} + #fi + if [ ${retCode[$c]} -eq 0 ]; then + echo "Pas d'erreur" + #notification "Error on deleting remote files ${errMsg[$c]}" $result + notification "No Error" ${retCode[$c]} + fi + +done -# find /volume1/Backup/SilverBook/Bases_MySQL -type f -mtime +1 -name '*.sql.gz' -# ssh dsm916e 'find /volume1/Backup/SilverBook/Bases_MySQL -type f -mtime +1 -name "*.sql.gz" -delete' # #### End of script ####