|
发表于 2005-3-10 07:38:02
|
显示全部楼层
cron
定時執行指令 ( cron ):
crontab [*/Minute] [*/Hour] [*/Day] [*/Month] [*(/DayOfWeek)?] Command
Minute: 分鐘,1 ~ 59
Hour : 小時,0 ~ 23
Day : 日期,1 ~ 31
Month : 月份,1 ~ 12 或 jan、feb...
DayOfWeek? : 0(星期日)~ 6(星期六),或 mon、tue...
Command : 所要執行的指令,中間以 ; 來分隔多個指令。
-e : 編輯 /var/spool/cron/crontabs/UserName 這一個檔案。以 # 開頭代表註解。
-l : 列出 /var/spool/cron/crontabs/UserName 這一個檔案的內容。
-d : 刪除使用者的工作排程。
-r : 刪除使用者的工作排程檔。
Minute,Houre,Day,Month,DayOfWeek? 為條件式,需要符合所有條件的那個時刻指令才會執行。
用 * 來代表略過這一個條件。
如果同一個欄位有多個條件,中間要用 , 分開。
如果是指連續一段時間,中間則以 - 分開。
如果要每隔固定時間執行,則使用 /#,指每隔 # 時刻執行。
crontab 的指令,預設是以 /bin/sh 為直譯器,而以使用者的家目錄為工作目錄。然而使用者可以用 HOME、SHELL、PATH 的變數改變執行時的直譯器、預設執行目錄與路徑。也可以透過設定 MAILTO 設定執行後的紀錄要以電子郵件記送到何處。
# use /bin/sh to run commands, no matter what /etc/passwd says
SHELL=/bin/sh
# mail any output to `paul', no matter whose crontab this is
MAILTO=paul
#
# run five minutes after midnight, every day
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# run at 2:15pm on the first of every month -- output mailed to paul
15 14 1 * * $HOME/bin/monthly
# run at 10 pm on weekdays, annoy Joe
0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
5 4 * * sun echo "run at 5 after 4 every sunday"
root 可以用 -u user name 來編輯其它使用者的 crontab 設定。
crontab -u UserName -e
在開機時,rc 檔會載入 crond 這一個 Daemon,
它會定時去讀取這個檔案,並依其內容執行指令。
而指令的執行結果(標準輸出/錯誤輸出,stdout/stderr)會以郵件方式寄給系統管理者,
即 /etc/aliases 檔案中的 root : UserName 。
也可以先將指令儲存成檔案,然後使用
crontab FileName
來將要執行的指令寫入 /var/spool/cron/crontabs/UserName 這一個檔案中。 |
|