Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ## PATHS ##
- LOG_PATH=/var/zzscriptzz/MySQLBackup/backup.log
- DUMP_PATH=/home/[YOUR_USER]/backups/db
- ## PATHS ##
- ## DB Config ##
- DB_HOST=localhost
- DB_USER="dbbackup"
- DB_PASSWORD="[YOUR_DBBACKUP_USER_PASSWORD]"
- declare -a DATABASES=("database1" "database2" "database3")
- ## DB Config ##
- ## APPS Config ##
- REMOTE_DRIVE=GDrive
- REMOTE_DRIVE_BKP=BKP
- BKP_ARCHIVE_PASSWORD="[7ZIP_ARCHIVE_PASSWORD]"
- BKP_ARCHIVE_OPTIONS="a -m0=LZMA -mx=9 -mmt=on -mfb=64 -p$BKP_ARCHIVE_PASSWORD"
- DUMP_OPTS="-Q --skip-lock-tables --single-transaction"
- ## APPS Config ##
- RCLONE="$(which rclone)"
- ZIPARCHIVER="$(which 7z)"
- FIND="$(which find)"
- MYSQLDUMP="$(which mysqldump)"
- DATE="$(which date)"
- TIMESTAMP=`$DATE +%Y-%m-%d`
- cd $DUMP_PATH
- $FIND $DUMP_PATH -name "*.7z" -mtime +28 -exec rm -f {} \;
- ## now loop through the above array
- for db in "${DATABASES[@]}"
- do
- $MYSQLDUMP $DUMP_OPTS -u $DB_USER -h $DB_HOST -p$DB_PASSWORD $db > $db.sql
- $ZIPARCHIVER $BKP_ARCHIVE_OPTIONS "$DUMP_PATH/$TIMESTAMP.$db.7z" $db.sql
- $RCLONE copy "$DUMP_PATH/$TIMESTAMP.$db.7z" $REMOTE_DRIVE:$REMOTE_DRIVE_BKP
- ERR=$?
- if [ $ERR != 0 ]; then
- NOTIFY_MESSAGE="$TIMESTAMP Error: $ERR, while backing up database: $db"
- else
- NOTIFY_MESSAGE="$TIMESTAMP Successfully backed up database: $db"
- fi
- echo $NOTIFY_MESSAGE 1>> $LOG_PATH
- rm -f *.sql
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement