linux(CentOS) 下mysql自動備份


1.創建並編輯文件 /usr/sbin/bakmysql.sh,命令:

vi /usr/sbin/bakmysql.sh

內容如下:

1 db_user="root" 2 db_passwd="root" 3 db_name="db_test" 4 # the directory for story your backup file.you shall change this dir 5 backup_dir="/usr/software/backup/mysqlbackup" 6 # date format for backup file (dd-mm-yyyy) 7 time="$(date +"%Y%m%d%H%M%S")" 8 
9 mysqldump -u$db_user  -p$db_passwd $db_name  > "$backup_dir/$db_name"_"$time.sql"

 注意 -p 和 $db_passwd之間沒有空格,不然$db_passwd會被當做參數[數據庫名]來解析

 2.修改文件bakmysql.sh屬性,使其可執行;

chmod 777 /usr/sbin/bakmysql.sh

或 chmod +x /usr/sbin/bakmysql.sh

腳本文件必須是:可讀,可執行。如果不可讀,crontab就不能讀取腳本內容,更談不上執行成功。

3.創建定時任務
crontab –e  
#進入編輯界面,內容如下
00 23 * * * /usr/sbin/bakmysql.sh

4.則重啟下crond服務,命令為

     使用 service crond restart
     或者/etc/init.d/crond restart(Centos7下為systemctl restart crond)
查看crontab 是否啟動成功,檢測crontab 服務是否啟動,
service crond start    //啟動服務
service crond stop     //關閉服務
service crond restart  //重啟服務
service crond reload   //重新載入配置
service crond status   //查看服務狀態 

mysql備份文件定期刪除

------------------------------附加一個mysql備份定時刪除--------------------------

1.准備一個腳本文件 rmbak.sh

backup_dir="/data/backup222/4a_db_backup" #刪除七天之前的備份
#find $backup_dir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1 #刪除一分鍾之前的備份
find $backup_dir -name $db_name"*.sql.gz" -type f -mmin +1 -exec rm -rf {} \; > /dev/null 2>&1

-type f 表示查找普通類型的文件,f 表示普通文件,可不寫
-mtime +7 按照文件的更改時間來查找文件,+7表示文件更改時間距現在7天以前;如果是-mmin +7表示文件更改時間距現在7分鍾以前
-exec rm {} ; 表示執行一段shell命令,exec選項后面跟隨着所要執行的命令或腳本,然后是一對{ },一個空格和一個\,最后是一個分號;
/dev/null 2>&1 把標准出錯重定向到標准輸出,然后扔到/DEV/NULL下面去。通俗的說,就是把所有標准輸出和標准出錯都扔到垃圾桶里面;其中的& 表示讓該命令在后台執行

2.編輯crontab -e,添加下面,每分鍾,如,每分鍾一次刪除

*/1 * * * * /data/backup222/rmbak.sh

3.重啟:service crond restart

注意,rmbak.sh文件的權限,r,保證 定時任務能讀取腳本內容,x,保證腳本有可執行權限

 

附錄: Crontab 格式

分 時 日 月 周 執行命令
第 1 列分鍾 159每分鍾* 或者*/1表示,整點分鍾數為00或0
第 2 列小時 1230 表示 0 點)
第 3 列日 1314 列月 1125 列星期 060 表示星期天)
第 6 列要運行的命令
0 3 * * * /backup.sh,此命令表示在每天的凌晨三點執行一次腳本,可自行調整時間

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM