CentOS系統(tǒng)mysql數(shù)據(jù)庫(kù)自動(dòng)備份腳本
2016-07-12 23:45:06
10676
#!/bin/bash
databases=(要備份的數(shù)據(jù)庫(kù)名)
basepath='/root/backup/'
if [ ! -d "$basepath" ]; then
mkdir -p "$basepath"
fi
for db in ${databases[*]}
do
/bin/nice -n 19 /usr/bin/mysqldump -u數(shù)據(jù)庫(kù)賬號(hào) -p數(shù)據(jù)庫(kù)密碼 --database $db > $basepath$db-$(date +%Y%m%d).sql
/bin/nice -n 19 tar zPcf $basepath$db-$(date +%Y%m%d).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql
find $basepath -mtime +7 -name "*.sql.tar.gz" -exec rm -rf {} ;
done
#rm -rf $basepath/*.sql
腳本如上,我這里的腳本為/root/db.sh
備份的地址
basepath='/root/backup/'
可以自己修改
/bin/nice -n 19是設(shè)置優(yōu)先級(jí)
備份數(shù)據(jù)庫(kù)的命令是mysqldump,命令在/usr/bin/目錄下面
這句代碼是刪除7天前的備份文件
find $basepath -mtime +7 -name "*.sql.tar.gz" -exec rm -rf {} ;
這句代碼是刪除生成的sql中間文件,但是我這里把它注釋掉了,也就是說(shuō)?會(huì)刪除,如果要?jiǎng)h除自己把注釋去掉
#rm -rf $basepath/*.sql
注意代碼最好是在CentOS系統(tǒng)中手動(dòng)敲,別在windows系統(tǒng)中敲了再傳到CentOS系統(tǒng)中,因?yàn)橛锌赡芤驗(yàn)榫幋a原因造成腳本運(yùn)行有問(wèn)題。
腳本寫(xiě)好后要通過(guò)crontab -e命令設(shè)置腳本定時(shí)運(yùn)行
crontab -e
0 3 * * * /root/db.sh
然后保存
這樣就是每天凌晨3:00自動(dòng)運(yùn)行腳本,即自動(dòng)備份數(shù)據(jù)庫(kù)
會(huì)員登錄
賬號(hào)登錄還沒(méi)有賬號(hào)?立即注冊(cè)