This commit is contained in:
2021-09-02 22:56:44 +02:00
parent b69f54cd4e
commit 9bf07ab9c7

View File

@@ -21,6 +21,19 @@
##################################################################### #####################################################################
# #
# #
#CREATE USER 'mysqlbackupuser'@'localhost' IDENTIFIED BY '34diK=[6]Zui';
#GRANT SELECT ON * . * TO 'mysqlbackupuser'@'localhost';
pass=$(gpg --quiet --decrypt $HOME/.my.cnf.gpg)
x=$(echo $pass | awk '{print $2}')
BKP_USER=${x:5}
y=$(echo $pass | awk '{print $3}')
BKP_PASS=${y:9}
machine=$(hostname | awk -F"." '{print $1}')
BKP_BASE_DIR=$(dirname "$0") BKP_BASE_DIR=$(dirname "$0")
# Read l/p from .my.cnf # Read l/p from .my.cnf
@@ -52,7 +65,7 @@ MYSQL_HOST="localhost"
# Pour les date en français: LC_ALL="fr_FR.UTF-8" date +"%B_%Y" # Pour les date en français: LC_ALL="fr_FR.UTF-8" date +"%B_%Y"
#lundi=date +%u #lundi=date +%u
if [ $(date +%d) = "01" ]; then # 1er du mois => octobre_2019 if [ $(date +%d) = "01" ]; then # 1er du mois => octobre_2019
BKP_DATE="$(date +"%B_%Y")"; BKP_DATE="$(date +"%B_%Y" | sed 'y/áàâäçéèêëîïìôöóûùúüñÂÀÄÇÉÈÊËÎÏÔÖÙÜÑ/aaaaceeeeiiiooouuuunAAACEEEEIIOOUUN/')";
elif [ $(date +%u) -eq 1 ]; then # lundi => S44_2019 elif [ $(date +%u) -eq 1 ]; then # lundi => S44_2019
BKP_DATE="$(date +"S%V_%Y")"; BKP_DATE="$(date +"S%V_%Y")";
else else
@@ -62,7 +75,7 @@ fi
# #
########## Ignore these default databases shen taking backup ############ ########## Ignore these default databases shen taking backup ############
# #
IGNORE_DB="information_schema mysql performance_schema" IGNORE_DB="information_schema mysql performance_schema sys"
# #
########## Creating backup dir if not exist ############################# ########## Creating backup dir if not exist #############################
# #
@@ -92,8 +105,8 @@ notification() {
###################### Get database list ################################ ###################### Get database list ################################
# #
#DB_LIST="$($MYSQL -u $BKP_USER -h $MYSQL_HOST -p$BKP_PASS -Bse 'SHOW DATABASES')" DB_LIST="$($MYSQL -u $BKP_USER -h $MYSQL_HOST -p$BKP_PASS -Bse 'SHOW DATABASES')"
DB_LIST="$($MYSQL -h $MYSQL_HOST -Bse 'SHOW DATABASES')" #DB_LIST="$($MYSQL -h $MYSQL_HOST -Bse 'SHOW DATABASES')"
# #
for db in $DB_LIST for db in $DB_LIST
@@ -113,11 +126,16 @@ do
# #
################ Using MYSQLDUMP for bakup and Gzip for compression ################### ################ Using MYSQLDUMP for bakup and Gzip for compression ###################
# #
#$MYSQLDUMP -u $BKP_USER -h $MYSQL_HOST -p$BKP_PASS -r$BKP_FILENAME $db
$MYSQLDUMP -h $MYSQL_HOST -r$BKP_FILENAME $db # Dans les dossiers Backup: mkdir -p silverbook/Bases_MySQL
$MYSQLDUMP -u $BKP_USER -h $MYSQL_HOST -p$BKP_PASS -r$BKP_FILENAME $db
#$MYSQLDUMP -h $MYSQL_HOST -r$BKP_FILENAME $db
#echo $db
#cat $BKP_FILENAME
$GZIP -9 $BKP_FILENAME $GZIP -9 $BKP_FILENAME
server1="ftp.cluster011.ovh.net:backup/SilverBook/Bases_MySQL/" server1="ftp.cluster011.ovh.net:backup/$machine/Bases_MySQL/"
scp "$BKP_GZ_FILENAME" funnymac@"$server1" scp "$BKP_GZ_FILENAME" funnymac@"$server1"
result=$? result=$?
@@ -125,12 +143,15 @@ do
sleep 1 sleep 1
server2="clicclac.synology.me:/volume1/Backup/SilverBook/Bases_MySQL/" server2="clicclac.synology.me:/volume1/Backup/$machine/Bases_MySQL/"
#scp -P42666 -p "$BKP_GZ_FILENAME" bruno@"$server2"
scp -P42666 -p "$BKP_GZ_FILENAME" bruno@"$server2" scp -P42666 -p "$BKP_GZ_FILENAME" bruno@"$server2"
#scp -P42666 -p "$BKP_GZ_FILENAME" bruno@clicclac.synology.me:/volume1/Backup/$machine/Bases_MySQL/
result=$? result=$?
notification "Backup MySQL: base $db" "$server2" $result notification "Backup MySQL: base $db" "$server2" $result
#echo "----"
fi fi
done done
@@ -138,13 +159,15 @@ done
# #
# Nettoyage serveurs locaux: # Nettoyage serveurs locaux:
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 #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"d | grep -v -E '(janvier|fevrier|mars|avril|mai|juin|juillet|aout|septembre|octobre|novembre|decembre)|(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_WEEKS | grep -E 'S\d{2}_\d{4}' | xargs rm -f find $BKP_DEST -name "*.sql.gz" -mtime +"$BKP_WEEKS"d | 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}.*' ##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_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 '(January|February|March|April|May|June|July|August|September|October|November|December)' | xargs rm -f
find $BKP_DEST -name "*.sql.gz" -mtime +"$BKP_MONTHS"d | grep -E '(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|decembre)' | xargs rm -f
# #
# Nettoyage serveurs distants: # Nettoyage serveurs distants:
@@ -152,19 +175,19 @@ find $BKP_DEST -name "*.sql.gz" -mtime +$BKP_MONTHS | grep -E '(January|February
#916_dest="/volume1/Backup/SilverBook/Bases_MySQL" #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 "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" ssh dsm916e "set -o pipefail; find /volume1/Backup/$machine/Bases_MySQL -type f -mtime +$BKP_DAYS -name '*.sql.gz' | grep -P '(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)' | xargs rm -f"
retCode[1]=$? retCode[1]=$?
errMsg[1]="daily backup bases @ dsm916" errMsg[1]="daily backup bases @ dsm916"
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" ssh dsm916e "set -o pipefail; find /volume1/Backup/$machine/Bases_MySQL -type f -mtime +$BKP_WEEKS -name '*.sql.gz' | grep -P 'S\d{2}_\d{4}' | xargs rm -f"
retCode[2]=$? retCode[2]=$?
errMsg[2]="weekly backup bases @ dsm916" 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" ssh dsm916e "set -o pipefail; find /volume1/Backup/$machine/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]=$? retCode[3]=$?
errMsg[3]="monthly backup bases @ dsm916" errMsg[3]="monthly backup bases @ dsm916"
ovh_dest="/homez.528/funnymac/backup/SilverBook/Bases_MySQL" ovh_dest="/homez.528/funnymac/backup/$machine/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 "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" 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"