linux自動執行crontab學習筆記
在linux平台上如果需要實現任務調度功能可以編寫cron腳本來實現。
以某一頻率執行任務
linux缺省會啟動crond進程,crond進程不需要用戶啟動、關閉。
crond進程負責讀取調度任務並執行,用戶只需要將相應的調度腳本寫入cron的調度配置文件中。
cron的調度文件有以下幾個:
crontab
cron.d
cron.daily
cron.hourly
cron.monthly
cron.weekly
如果用的任務不是以hourly monthly weekly方式執行,則可以將相應的crontab寫入到crontab 或cron.d目錄中。
示例:
每隔一分鐘執行一次腳本 /opt/bin/test-cron.sh
可以在cron.d新建腳本 echo-date.sh
內容為
*/1 * * * * root /opt/bin/test-cron.sh
在指定的時間運行任務
也可以通過at命令來控制在指定的時間運行任務
如:
at -f test-cron.sh -v 10:25
其中-f 指定腳本文件, -v 指定運行時間
quote:ea946d690b="lophyxp"]首先用
contab -l >contabs.tmp
導出contab的配置。
然後編輯contabs.tmp文件。以一下格式添加一行:
分鐘 小時 天 月 星期 命令
比如
10 3 * * 0,6 hello
就是每周六、周日的3點10分執行hello程序。
15 4 * * 4-6 hello
就是從周四到周六的4點15點執行hello程序。
然後用
contab contabs.tmp
命令導入新的配置。
一般不建議直接修改/etc/下的相關配置文件。
啟動cron進程的方法:/etc/init.d/crond start
開機就啟動cron進程的設置命令:chkconfig --add crond
方法二:
把cron加入到啟動腳本中:
# rc-update add vixie-cron default
crontab -l #查看你的任務
crontab-e#編輯你的任務
crontab-r#刪除用戶的crontab的內容
實例講解二:
系統cron設定:/etc/crontab
通過 /etc/crontab 文件,可以設定系統定期執行的任務,當然,要想編輯這個文件,得有root權限
0 7 * * * root mpg123 ~/wakeup.mp3
分 時 日 月 周
示例:
0 4 * * 0 root emerge --sync && emerge -uD world #每周日凌晨4點,更新系統
0 2 1 * * root rm -f /tmp/* #每月1號凌晨2點,清理/tmp下的文件
0 8 6 5 * root mail robin < /home/galeki/happy.txt #每年5月6日給robin發信祝他生日快樂
假如,我想每隔2分鐘就要執行某個命令,或者我想在每天的6點、12點、18點執行命令,諸如此類的周期,可以通過 “ / ” 和 “ , ” 來設置:
*/2 * * * * root ............... #每兩分鐘就執行........
0 6,12,18 * * * root ............... #每天6點、12點、18點執行........
每兩個小時
0 */2 * * * echo "have a break now." >> /tmp/test.txt
晚上11點到早上8點之間每兩個小時,早上八點
0 23-7/2,8 * * * echo "have a good dream:)" >> /tmp/test.txt
每個月的4號與每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * 1-3 command line
1月1日早上4點
0 4 1 1 * command line
收獲:可以把經常要做的一些事放到其中,簡化工作量,如每周一檢查服務器的運行狀態,查看報告,殺掉一些進程等等……