mysql 備份腳本

mkdir /backup
mkdir /backup/backupset
mkdir /backup/script

創(chuàng)建備份目錄,存放腳本和備份集

這是一個使用mysqldump的簡單備份腳本

使用該命令mysqldump會鎖表

如果數(shù)據(jù)庫有較大容量的表時不建議使用該命令備份庫

建議使用Xtrabackup命令進(jìn)行備份

vi /backup/script/backup.sh

!/bin/sh

. ~/.bash_profile
MYUSER=root
MYPASS=vincent
DATABASES="mysql test"
LogFile=/backup/script/log_backup.log
SOCKET=/usr/local/mariadb/run/mysql.sock
MYCMD="/usr/local/mariadb/bin/mysql -uMYUSER -pMYPASS -SSOCKET" MYDUMP="/usr/local/mariadb/bin/mysqldump -uMYUSER -pMYPASS -B --flush-privileges --single-transaction --master-data=2 --triggers --routines --events --hex-blob -SSOCKET" # --flush-logs
TIME=(date +%F_%H-%M-%S) echo -e ''{1..75}'\b#'>>LogFile echo -e ''{1..75}'\b#'>>LogFile echo -e "\n(date +%F' '%T) [Info] START BACKUP DATABASE\n">>LogFile for database in{DATABASES}
do
echo -e "(date +%F' '%T) [Info] START BACKUP DATABASEdatabase">>LogFileMYDUMP database|gzip >/backup/backupset/{database}{TIME}.sql.gz zcat /backup/backupset/{database}{TIME}.sql.gz|head -50|grep 'CHANGE MASTER TO'>>LogFile
echo -e "(date +%F' '%T) [Info] END BACKUP DATABASEdatabase\n">>LogFile find /backup/backupset -name "database*" -mtime +3 -exec rm -f {} ;
done
for database in {DATABASES} do rsync -az /backup/backupset/{database}_${TIME}.sql.gz rsync_backup@172.16.55.5::mysql/ --password-file=/etc/rsync.password
done

腳本如上

chmod +x /backup/script/backup.sh

添加可執(zhí)行權(quán)限

crontab -l

MariDB backup

0 0 * * * /backup/script/backup.sh

添加自動任務(wù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容