crontab檔案中包含了用於cron守候程序執行的一條或者多條指令,在每條指令中均會指明在指定的日期、指定的時間執行某個特定的命令。每個使用者均擁有自己的crontab表。使用者可以通過下述命令來編輯相應的crontab檔案:
(1)crontab -u //用於設定某個使用者的cron服務,一般root使用者在執行該命令時需要該引數
(2)crontab -l //列出屬於某個使用者的cron服務的詳細內容
(3)crontab -r //刪除屬於某個使用者的cron服務
(4)crontab -e //用於編輯某個使用者的cron服務
在crontab檔案中,空白行和前導的空格以及製表符均會被忽略。除去空白符,首個字元為「#」的行會被當作注釋,並被忽略。乙個有效的crontab行可以用於設定乙個環境或者執行乙個cron命令。其中,環境變數的設定具有如下形式:name = value。式中,賦值符號周圍的空格是可選的,並且value中任何非前導空格均會被當作其值的一部分。字串型別的值可以位於引號中,包括單引號和雙引號,以便能夠保留前導或者尾部的空格。
cron守候程序會自動設定一些環境變數。在預設情況下,shell將會被設定為/bin/sh,logname和home環境變數將會根據crontab所有者的/etc/passwd行中的值進行設定。home和shell這兩個環境變數可以被覆蓋,但是logname卻不可以。
欄位名稱
允許的值
minute(分鐘)
0-59
hour(小時)
0-23
day of month(每月中第幾天)
1-31
month(月)
1-12(或指定月的名稱)
day of week(每週中星期幾)
0-7(0和7表示星期日,或者使用名稱)
需要注意的是:字段值可以是「*」,表示整個取值區間。同時,對於各個字段可以指定數字區間,區間是兩個數字,中間以-相隔,並且包含兩端的值。同時,各個欄位也允許列表值,乙個列表是乙個數字集合(包含區間),各個值之間以(「,」)相隔。例如:「1, 2, 5, 9」和「0-4, 8-12」等。
在指定取值區間時,可以指定步長值,例如:0-23/2,表示每兩個小時執行一次。同時,可以在乙個「*」符號後指定乙個步長值。除去上述五個時間和日期字段,每行中的剩餘部分(直至新的一行或者「%」符號)便是將要執行的命令。該命令將由/bin/sh或者由shell環境變數指定的shell來執行。命令中的「%」符號將會被轉換為換行符號。除非使用「\」字元進行轉義,否則「%」符號之後的所有資料將會被傳送給該命令作為標準輸入。
同時,需要注意的是:命令中的「天」可以通過兩個欄位來指定:(1)月中的天(day of month);(2)星期中的天(day of week)。如果這兩個欄位均被限定,命令將會在匹配兩者任一的時間上執行。例如:30 4 1,15 * 5將會使得指定的命令在每月的1日和15日執行,另外加上每週的周五。而5 0 * * * $home/bin/daily.job >> $home/temp/out 2>&1表明命令將會在每天的00:05分執行。
linux cron命令學習
whereis cron 可以看到,cron是乙個系統管理員命令,只有root許可權才能使用。在本人所玩的嵌入式系統中,根本就沒有cron這個東西 嵌入式系統中的資源是寶貴的,盡量不要有一些相關性不大的東西在系統中 之所以寫這篇學習心得,也純粹是感覺cron這個東西挺好玩的 因為很多沒有經過系統驗證...
Linux Cron服務,定時任務的設定和詳解
啟動crontab服務 一般啟動服務用 sbin service crond start 若是根使用者的cron服務可以用 sudo service crond start,這裡還是要注意 下 不同版本linux系統啟動的服務的命令也不同 像我的虛擬機器裡只需用 sudo service cron ...
TL Shell定時工具Crontab的使用
export editor usr bin vim crontab ecrontab u username 省略使用者表表示操作當前使用者的crontab e 編輯工作表 l 列出工作表裡的命令 r 刪除工作作 我們用crontab e進入當前使用者的工作表編輯,是常見的vim介面。每行是一條命令。...