首頁 > 軟體

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

2020-06-16 17:15:18

這裡在Linux下使用到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 列出所有定時任務

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-05/143604.htm


IT145.com E-mail:sddin#qq.com