創建備份目錄
cd /home mkdir backup cd backup
創建備份 Shell 腳本:
vim DatabaseName.sh #!/bin/bash /usr/local/mysql/bin/mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql 對備份進行壓縮: #!/bin/bash /usr/local/mysql/bin/mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz 注意: 把 username 替換為實際的用戶名; 把 password 替換為實際的密碼; 把 DatabaseName 替換為實際的數據庫名;
添加可執行權限
chmod u+x DatabaseName.sh
添加計划任務
crontab -e 01 3 * * * root/home/backup/DatabaseName.sh 表示每天 3 點鍾執行備份
Crontab 的格式
第 1 列分鍾 1~59 第 2 列小時 1~23(0 表示子夜) 第 3 列日 1~31 第 4 列月 1~12 第 5 列星期 0~6(0 表示星期天) 第 6 列要運行的命令 下面是 crontab 的格式: 分 時 日 月 星期 要運行的命令 這里有 crontab 文件條目的一些例子: 30 21 * * * /usr/local/apache/bin/apachectl restart 上面的例子表示每晚的 21:30 重啟 apache。 45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart 上面的例子表示每月 1、10、22 日的 4 : 45 重啟 apache。 10 1 * * 6,0 /usr/local/apache/bin/apachectl restart 上面的例子表示每周六、周日的 1 : 10 重啟 apache。 0,30 18-23 * * * /usr/local/apache/bin/apachectl restart 上面的例子表示在每天 18 : 00 至 23 : 00 之間每隔 30 分鍾重啟 apache。 0 23 * * 6 /usr/local/apache/bin/apachectl restart 上面的例子表示每星期六的 11 : 00 pm 重啟 apache。 0 */1 * * * /usr/local/apache/bin/apachectl restart 每一小時重啟 apache #20160912 修正,感謝 @張瓊的指正,之前寫錯了,*/1 和 * 表示的同樣的意思,對於 / 的用法,可以參考另一篇文章 Crontab 中的除號到底怎么用? 0 23-7/1 * * * /usr/local/apache/bin/apachectl restart 晚上 11 點到早上 7 點之間,每隔一小時重啟 apache 0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart 每月的 4 號與每周一到周三的 11 點重啟 apache 0 4 1 jan * /usr/local/apache/bin/apachectl restart 一月一號的 4 點重啟 apache
參考鏈接:https://mp.weixin.qq.com/s?__biz=MzA3OTgyMDcwNg==&mid=2650631459&idx=1&sn=63479c55ea99b9db09e40696373721c4&chksm=87a46feeb0d3e6f8c3562a314c962760a52c5064599791fa00976f21a91348724854325a1a5d&mpshare=1&scene=23&srcid=0823Ts1Ic9kGVSPzTLjLPPUR#rd