contab 與 at
contab : 定時執行
at : 指定時間運行一次
Crontab
當使用者使用 crontab 這個指令來建立工作排程之後,該項工作就會被紀錄到 /var/spool/cron/ 裡面去了,而且是以帳號來作為判別的喔!舉例來說, student使用 crontab 後, 他的工作會被紀錄到 /var/spool/cron/student 裡頭去!
[root@www ~]# crontab [-u username] [-l|-e|-r]
選項與參數:
-u :只有 root 才能進行這個任務,亦即幫其他使用者建立/移除 crontab 工作排程;
-e :編輯 crontab 的工作內容
-l :查閱 crontab 的工作內容
-r :移除所有的 crontab 的工作內容,若僅要移除一項,請用 -e 去編輯。
範例一:用 student 的身份在每天的 11:00 發信給自己
[student@www ~]$ crontab -e
# 此時會進入 vi 的編輯畫面讓您編輯工作!注意到,每項工作都是一行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 時 日 月 週 |<==============指令串========================>|
系統的設定檔: /etc/crontab
上頭的crontab -e 是針對使用者個cron來設計的,如果是系統的例行性任務,只要編輯/etc/contab這個檔案就可以了
* crontab -e 這個 crontab 其實是 /usr/bin/crontab 這個執行檔,但是 /etc/crontab 可是一個『純文字檔』喔
語法格式 : * * * * * 某帳號 rum-parts 目錄
- 指令型態
01 * * * * dmtsai mail -s "testing" kiki < /home/dmtsai/test.txt
以 dmtsai 這個使用者的身份,在每小時執行一次 mail 指令。 - 目錄規劃
*/5 * * * * root run-parts /root/runcron
建立一個 /root/runcron 的目錄,將要每隔五分鐘執行的『可執行檔』都寫到該目錄下, 就可以讓系統每五分鐘執行一次該目錄下的所有可執行檔。
- /etc/cron.allow:
將可以使用 crontab 的帳號寫入其中,若不在這個檔案內的使用者則不可使用 crontab; - /etc/cron.deny:
將不可以使用 crontab 的帳號寫入其中,若未記錄到這個檔案當中的使用者,就可以使用 crontab 。
at
at是一個互動式的模式
at now + 5 minutes
>reboot
>ctrl D
這邊也有兩個檔案是/etc/at.allow & /etc/at.deny