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 示例
-
在 12:01 a.m 運行,即每天凌晨過一分鐘。這是一個恰當的進行備份的時間,因爲此時系統負載不大。
1 0 * * * /root/bin/backup.sh
-
每個工作日(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
-
每5分鐘運行一次命令
*/5 * * * * /root/bin/check-status.sh
-
每個月的第一天 1:10 p.m 運行
10 13 1 * * /root/bin/full-backup.sh
-
每個工作日 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 文件前提醒用戶