crontab命令詳解

2021-08-25 18:36:47 字數 3757 閱讀 1901

crontab命令的功能是在一定的時間間隔排程一些命令的執行。在/etc目錄下有乙個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程crontab。

crontab命令有三種形式的命令列結構:

crontab[-uuser][file]

crontab[-uuser][-e|-l|-r]

crontab-l-u[-e|-l|-r]第乙個命令列中,file是命令檔案的名字。如果在命令列中指定了這個檔案,那麼執行 crontab命令,則將這個檔案拷貝到crontabs目錄下;如果在命令列中沒有制定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命 令,並將他們也存放在crontab目錄下。

命令列中-r選項的作用是從/usr/spool/cron/crontabs目錄下刪除使用者定義的檔案crontab;

命令列中-l選項的作用是顯示使用者crontab檔案的內容。

使用命令crontab-uuser-e命令編輯使用者user的cron(c)作業。使用者通過編輯檔案來增加或修改任何作業請求。

執行命令crontab-uuser-r即可刪除當前使用者的所有的cron作業。

作業與它們預定的時間儲存在檔案/usr/spool/cron/crontabs/username裡。username使使用者名稱,在相應的文 件中存放著該使用者所要執行的命令。命令執行的結果,無論是標準輸出還是錯誤輸出,都將以郵件形式發給使用者。檔案裡的每乙個請求必須包含以spaces和 tabs分割的六個域。前五個字段可以取整數值,指定何時開始工作,第六個域是字串,稱為命令字段,其中包括了crontab排程執行的命令。

第一道第五個欄位的整數取值範圍及意義是:

0~59表示分

1~23表示小時

1~31表示日

1~12表示月份

0~6表示星期(其中0表示星期日)

/usr/lib/cron/cron.allow表示誰能使用crontab命令。如果它是乙個空檔案表明沒有乙個使用者能安排作業。如果這個文 件不存在,而有另外乙個檔案/usr/lib/cron/cron.deny,則只有不包括在這個檔案中的使用者才可以使用crontab命令。如果它是一 個空檔案表明任何使用者都可安排作業。兩個檔案同時存在時cron.allow優先,如果都不存在,只有超級使用者可以安排作業。

crontab例項

cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron是linux的內建服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:

/sbin/servicecrondstart//啟動服務

/sbin/servicecrondstop//關閉服務

/sbin/servicecrondrestart//重啟服務

/sbin/servicecrondreload//重新載入配置

你也可以將這個服務在系統啟動的時候自動啟動:

在/etc/rc.d/rc.local這個指令碼的末尾加上:

/sbin/servicecrondstart

1、直接用crontab命令編輯

cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些引數與說明:

crontab-u//設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數

crontab-l//列出某個使用者cron服務的詳細內容

crontab-r//刪除某個使用者的cron服務

crontab-e//編輯某個使用者的cron服務

shell=/bin/bash

path=/sbin:/bin:/usr/sbin:/usr/bin

mailto=root //如果出現錯誤,或者有資料輸出,資料作為郵件發給這個帳號

home=/ //使用者執行的路徑,這裡是根目錄

#run-parts

01****rootrun-parts/etc/cron.hourly//每小時執行/etc/cron.hourly內的指令碼

024***rootrun-parts/etc/cron.daily//每天執行/etc/cron.daily內的指令碼

224**0rootrun-parts/etc/cron.weekly//每星期執行/etc/cron.weekly內的指令碼

4241**rootrun-parts/etc/cron.monthly//每月去執行/etc/cron.monthly內的指令碼

大家注意"run-parts"這個引數了,如果去掉這個引數的話,後面就可以寫要執行的某個指令碼名,而不是資料夾名了。

--------------------------------------

基本格式 :

*  *  *  *  *  command

分 時 日 月 周 命令

第1列表示分鐘1~59 每分鐘用*或者 */1表示

第2列表示小時1~23(0表示0點)

第3列表示日期1~31

第4列表示月份1~12

第5列標識號星期0~6(0表示星期天)

第6列要執行的命令

crontab檔案的一些例子:

上面的例子表示每晚的21:30重啟lighttpd 。

上面的例子表示每月1、10、22日的4 : 45重啟lighttpd 。

上面的例子表示每週

六、週日的1 : 10重啟lighttpd 。

上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟lighttpd 。

上面的例子表示每星期六的11 : 00 pm重啟lighttpd 。

每一小時重啟lighttpd

晚上11點到早上7點之間,每隔一小時重啟lighttpd

每月的4號與每週一到週三的11點重啟lighttpd

一月一號的4點重啟lighttpd

vi /etc/crontab

shell =/bin/bash path =/sbin:/bin:/usr/sbin:/usr/bin mailto=/root home =/ #run-parts 01 * * * * root run-parts /etc/cron.hourly 02 * * * * root run-parts /etc/cron.daily 22 * * * * root run-parts /etc/cron.weekly 42 * * * * root run-parts /etc/cron.monthly #執行指令碼 0 0 * * * root /home/public/wuyuhuan/test >/dev/null 2>&1

crontab命令詳解

crontab命令的功能是在一定的時間間隔排程一些命令的執行。在 etc目錄下有乙個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程crontab。crontab命令有三種形式的命令列結構 crontab u user file crontab u user e l...

crontab命令詳解

crontab命令的功能是在一定的時間間隔排程一些命令的執行。在 etc目錄下有乙個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程crontab。crontab命令有三種形式的命令列結構 crontab u user file crontab u user e l...

crontab命令詳解

crontab命令的功能是在一定的時間間隔排程一些命令的執行。在 etc目錄下有乙個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程crontab。crontab命令有三種形式的命令列結構 crontab u user file crontab u user e l...