天天看點

Linux下使用crontab自動備份資料庫

Linux下使用crontab自動備份資料庫

這裡使用到crontab定時任務的添加及mysqldump執行簡單的資料庫備份,具體步驟如下:

1.      編寫一個腳本: /serverBack/autobackmysql.sh

内容如下:

方法一:

##使用mysqldump備份資料庫erms

/usr/local/mysql/bin/mysqldump -uroot -ppwd erms >> /serverBack/mysql_back/erms_$(date+"%Y_%m_%d").sql

##找到/serverBack/mysql_back/下檔案名稱以erms_開頭,以 .sql 結尾的檔案,并且是7天前系統修改過的檔案,将其删除

find /serverBack/mysql_back/ -mtime +7-name "erms_*.sql" -exec rm -rf {} \;

方法二:

/usr/local/mysql/bin/mysqldump -uroot -ppwd dbname > dir/db_`date +%F`.sql

##保留近一周的備份檔案,更早的删除

find /dir -mtime +7 -name"db_*.sql" -exec rm -rf {} \;

方法三:

filename='date +%y%m%d'

/usr/local/mysql/bin/mysqldump -uroot-proot erms >>/serverBack/mysql/$filename.sql

較全的shell腳本内容如下:

echo "---------------------------------------------------" >> /serverBack/dbBack/dbBackLog.log
echo $(date +"%Y-%m-%d %H:%M:%S") "erms Database backup start"  >> /serverBack/dbBack/dbBackLog.log
/usr/local/mysql/bin/mysqldump -uroot -ppwd erms >> /serverBack/dbBack/erms_$(date +"%Y-%m-%d").sql

if [ 0 -eq $? ];then

if [ -f "/serverBack/dbBack/erms_$(date +"%Y-%m-%d").sql" ];then
echo $(date +"%Y-%m-%d %H:%M:%S") "erms Database backup success!" >> /serverBack/dbBack/dbBackLog.log
else
echo $(date +"%Y-%m-%d %H:%M:%S") "erms Database backup fail!" >> /serverBack/dbBack/dbBackLog.log
fi

else
echo $(date +"%Y-%m-%d %H:%M:%S") "erms Database backup error!" >> /serverBack/dbBack/dbBackLog.log
fi

echo "---------------------------------------------------" >> /serverBack/dbBack/dbBackLog.log

find /serverBack/mysql_back/ -mtime +7 -name "erms_*.sql" -exec rm -rf {} \;
           

注意:a.這裡的mysqldump最好是使用絕對路徑,若直接使用mysqldump有可能備份成空檔案

b.為了確定該腳本内容準确無誤,可以單獨運作每個指令,如執行mysqldump指令:/usr/local/mysql/bin/mysqldump -uroot -ppwd erms >> /serverBack/mysql_back/erms_$(date+"%Y_%m_%d").sql

c.find指令中,結尾處的 ; 分号不能省略

2.      添加一個定時任務 

crontab –e ##編輯定時任務

添加定時任務内容:

00 15 * * * /serverBack/autobackmysql.sh  ##每天定時15:00:00 執行腳本 /serverBack/autobackmysql.sh

指令:

crontab –e ##編輯定時任務

crontab –r 删除所有定時任務

crontab –l 列出所有定時任務

繼續閱讀