在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
收穫:可以把經常要做的一些事放到其中,簡化工作量,如每周一檢查伺服器的運行狀態,查看報告,殺掉一些進程等等……