crontab入門及高階學習筆記

2021-07-13 17:39:48 字數 1600 閱讀 1663

crontab不是通常意義下的linux指令,它更是乙個配置工具。通過這個工具,我們可以為系統定製固定週期的任務。

1、crond和crontab

1)   crond:cron服務的守護程序,用於定期排程。

2、crontab指令:

crontab –l:顯示已有定期排程任務。

3、cron任務格式:

使用crontab –e編輯定期排程任務時,實際上可以理解為編輯乙個配置檔案,通過這個檔案定義要執行哪些定期任務,執行的週期如何。

編輯過程可以理解為:進入vi編輯介面,以乙個工作代表一行來編輯,然後輸入「:wq」儲存即可。每項工作(每行)具有六個字段,各欄位意義如下表所示,六個字段依次表示分鐘、小時、天、月、周和要執行的shell命令。

代表意義分鐘

小時日期月份周

指令數字範圍

0-59

0-23

1-31

1-12

0-7指令

4、特殊字元的使用:

cron任務中,有時需要設定較為複雜的任務處理邏輯,此時可能會用到如下特殊字元:

特殊字元

代表意義

*(星號)

代表任何時候都接受。例如:30 10 * * * command中,day,month和week均為「*」,表示無論哪一天、哪個月、週幾,都在10點30分執行命令。

,(逗號)

代表多個並列時間。例如:* 3,6,9,12 * * * command,表示在3點,6點,9點或12點,執行命令。

-(減號)

代表連續區間。例如:* 9-17 * * * command,表示從9點到17點,每一分鐘都要執行這個任務。

/n(斜線)

代表每隔n個單位之間。例如:*/5 * * * * command,其中用*與/5來搭配,表示每隔5分鐘執行指令;也可以寫成 0-59/5 ,作用相同。

5、舉例:

>crontab –e #進入編輯介面

0 17 * * 5 mail all_members < weekily_report_notify

#每週一00:30統計上週的伺服器使用情況,結果儲存到以日期命名的檔案:

>crontab –e #進入編輯介面

30 0  * * 1 /home/get_server_usage.sh> server_usage_`date +"\%y\%m\%d"`.txt

#注意其中%的處理,需要在前面加反斜槓\進行轉義。

6、注意事項:

p.s.: crontab命令中的待執行指令碼最好使用絕對路徑。

p.s.: 「周」這一欄中0和7都代表週日。

p.s.: cron排程的最小頻率為1分鐘。

p.s.: 每個月的最後一日無法由crontab直接支援,需要通過指令碼判斷。

p.s.:如果crontab執行出錯,可以檢視日誌檔案/var/log/syslog,追溯問題。

Linux入門及高階學習推薦書籍

接觸linux也有一段時間了,因為習慣了windows的操作,剛開始對於ubuntu一點都不習慣,完全是各種不爽。記得剛接觸的時候,是看見朋友的電腦是ubuntu很酷的紅色桌面,於是自己也跟風,安裝了乙個ubuntu系統使用,結果使用之後才發現,ubtuntu真的不太適合初學者。為什麼這樣說呢?首先...

Linux入門及高階學習推薦書籍

接觸linux也有一段時間了,因為習慣了windows的操作,剛開始對於ubuntu一點都不習慣,完全是各種不爽。記得剛接觸的時候,是看見朋友的電腦是ubuntu很酷的紅色桌面,於是自己也跟風,安裝了乙個ubuntu系統使用,結果使用之後才發現,ubtuntu真的不太適合初學者。為什麼這樣說呢?首先...

深度學習入門 高階教程

神經網路和深度學習目前提供了針對影象識別,語音識別和自然語言處理領域諸多問題的最佳解決方案。傳統的程式設計方法中,我們告訴計算機如何去做,將大問題劃分為許多小問題,精確地定義了計算機很容易執行的任務。而神經網路不需要我們告訴計算機如何處理問題,而是通過從觀測資料中學習,計算出他自己的解決方案。自動地...