Linux cron定時命令的使用

2021-05-26 18:42:35 字數 1487 閱讀 7563

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介面。每行是一條命令。...