linux下使用crontab如何實現mysql數據庫每天自動備份定時備份,並只保留近7天數據文件

1. 編輯shell腳本 (備份&清理)

#!/bin/bash
#在此設置要備份的數據庫名,以TEST爲例
DBNAME="TEST" 
#備份數據臨時存放位置,備份完成之後自動刪除.			
BACKDIR="/home/root/backup/" 
#獲取系統時間
DATE=`date +%Y%m%d`
#備份文件名以時間命名	
FILENAME=dump_${DATE}.sql 
#進入備份目錄
cd ${BACKDIR} 
#備份數據庫並追加日誌
mysqldump -uroot -proot --databases TEST > ${BACKDIR}${FILENAME} >> db_backup.log
#刪除近7天文件
find ${BACKDIR} -mtime +7 -name "*.sql" -exec rm -rf {} \;

2. 將腳本加入crontab自動執行計劃

添加計劃

crontab -e

加入一行:

#每天晚上11點半, 執行對應路徑下的腳本.
30 23 * * *  /home/root/backup.sh

保存退出(vim命令)

3. Cron 各項的描述

以下是 crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
minute: 區間爲 0 – 59
hour: 區間爲0 – 23
day-of-month: 區間爲0 – 31
month: 區間爲1 – 12. 1 是1月. 12是12月.
Day-of-week: 區間爲0 – 7. 週日可以是0或7.

4.Crontab 示例

  1. 在 12:01 a.m 運行,即每天凌晨過一分鐘。這是一個恰當的進行備份的時間,因爲此時系統負載不大。

    1 0 * * * /root/bin/backup.sh
    
  2. 每個工作日(Mon – Fri) 11:59 p.m 都進行備份作業。

    59 11 * * 1,2,3,4,5 /root/bin/backup.sh
    

    下面例子與上面的例子效果一樣:

    59 11 * * 1-5 /root/bin/backup.sh
    
  3. 每5分鐘運行一次命令

    */5 * * * * /root/bin/check-status.sh
    
  4. 每個月的第一天 1:10 p.m 運行

    10 13 1 * * /root/bin/full-backup.sh
    
  5. 每個工作日 11 p.m 運行。

    0 23 * * 1-5 /root/bin/incremental-backup.sh
    

4. crontab常用的命令

service crond start    //啓動服務
service crond stop     //關閉服務
service crond restart  //重啓服務
service crond reload   //重新載入配置
service crond status   //查看服務狀態 
crontab –e             //往 cron 中添加一個作業
crontab –e             //修改 crontab 文件. 如果文件不存在會自動創建。 
crontab –l             //顯示 crontab 文件。 
crontab -r             //刪除 crontab 文件。
crontab -ir            //刪除 crontab 文件前提醒用戶
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章