Linux 之 crontab 定時任務 一

2021-10-08 11:50:53 字數 2334 閱讀 8957

crontab是乙個命令,常見於unix和類unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於「crontab」檔案中,以供之後讀取和執行。與windows下的計畫任務類似,當安裝完成作業系統後,缺省會安裝此服務工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。其中:

1、cron是服務名稱;

2、crond是後台程序;

3、crontab是計畫任務表;

1、系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。在/etc目錄下有乙個crontab檔案,這個就是系統任務排程的配置檔案,內容如下:

前四行用來配置crond任務執行的環境變數,其中:第一行shell變數指定了系統要使用哪個shell,這裡是bash;第二行path變數指定了系統執行命令的路徑;第三行mailto變數指定了crond的任務執行資訊將通過電子郵件傳送給root使用者,如果mailto變數的值為空,則表示不傳送任務執行資訊給使用者;第四行的home變數指定了在執行命令或者指令碼時使用的主目錄。

2、使用者任務排程:使用者定期要執行的工作,比如使用者資料備份、定時郵件提醒等。使用者可以使用crontab來定製自己的計畫任務。所有使用者定義的crontab檔案都被儲存在/var/spool/cron目錄下,其檔名與使用者名稱一致。

1、crontab [-u user] file:-u用來指定某個使用者的crontab服務,一般是像root這種高許可權使用者使用。file是命令檔案的名字,表示將file做為crontab的任務列表檔案並載入crontab。如果在命令列中沒有指定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。

2、crontab [-u user] -e:編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯當前使用者的crontab檔案內容。

3、crontab [-u user] -l:顯示某個使用者的crontab檔案內容。如果不指定使用者,則表示顯示當前使用者的crontab檔案內容。

4、crontab [-u user] -[i]r:從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除當前使用者的crontab檔案。-i引數指定在刪除使用者的crontab檔案時是否給確認提示。

使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個字段代表一項設定,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:

minute   hour   day   month   week   command      

其中:1、minute: 表示分鐘,可以是從0到59之間的任何整數;

2、hour:表示小時,可以是從0到23之間的任何整數;

3、day:表示日期,可以是從1到31之間的任何整數;

4、month:表示月份,可以是從1到12之間的任何整數;

5、week:表示星期幾,可以是從0到6之間的任何整數,這裡的0代表星期日;

前五個時間設定段,可以含如下特殊字元:

1、星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作;

2、逗號(,):可以用逗號隔開的值指定乙個列表範圍,例如,「1,2,5,7,8,9」;

3、中槓(-):可以用整數之間的中槓表示乙個整數範圍,例如「2-6」表示「2,3,4,5,6」;

4、正斜線(/):可以用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。

1、/sbin/service crond start          啟動服務

2、/sbin/service crond stop          關閉服務  

3、/sbin/service crond restart       重啟服務  

4、/sbin/service crond reload       重新載入配置

5、/sbin/service crond status       服務是否執行

1、crontab最小時間單位是分,如果需要在秒級設定定時任務,使用sleep延時:如果每10秒執行一次,每分鐘60秒,可以看成:6個同時執行的crontab任務,第乙個任務0秒執行,第二個任務延時10秒執行,第三個任務延時20秒執行,以此類推,得到:

linux定時任務之crontab

標題已經很明顯了,就是做定時任務的!cron是系統主要的排程程序,可以在非人工干預的情況下執行作業。crontab命令允許使用者提交 編輯或刪除相應的作業。簡單來說,當我們需要讓系統執行乙個定時任務時,我們就會用到它,比如定時重啟tomcat,或者定時呼叫乙個jar包來執行某項功能等。1 var s...

linux之 crontab 定時任務

crontab命令被用來提交和管理使用者的需要週期性執行的任務,與windows下的計畫任務類似,當安裝完成作業系統後,缺省會安裝此服務工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。crontab 選項 引數 選項 e 編...

定時引爆之crontab

楔子其實寫乙個python 或者 shell 指令碼即可,以下內容只為入門學習。接下來開始埋放地雷或者 簡介 1.計畫任務,是任務在約定的時間執行已經計畫好的工作,這是表面的意思。在linux中,我們經常用到cron伺服器來完成這項工作。cron伺服器可以根據配置檔案約定的時間來執行特定的作務。比如...