crontab用法疑雲

2021-06-28 05:29:40 字數 1110 閱讀 4368

crontab的教程裡面,一般都說 */n 表示每隔n分鐘/小時執行一次。

偶爾的教程裡會講到:這個n應該被60整除才行。

我在網上基本上沒有搜到,如果n不被60整除的時候,會是怎樣?

問題起因最開始在於:

個人有個crontab任務,希望設定成40分鐘執行一次。但是設定了*/40之後發現,任務總是會在整點和40分的時候執行。

檢視了下任務設定,並沒有設定在整點執行。然而,整點執行之後,隔40分鐘之後執行這一點又是符合crontab設定的。

所以,奇怪之處在於,為何整點會執行?

重新設定了乙個不會被整除的數:*/47。檢視任務,每次執行時打個log。發現:在整點和47分的時候都會執行。

聯想到crontab任務的執行標準,是每分鐘判斷一次某個任務是否應該被執行,那麼,crontab的判斷標準應該如下:

1. 每分鐘執行一次,判斷任務是否應該執行;

2. 判斷標準為:當前分鐘數除以設定分鐘數,餘數為0則可以執行。

這樣,設定為*/40或*/47的時候,在整點時刻(分鐘數為00),除以設定分鐘數(40和47),餘數為0,故均會被執行。

由此可見,某些教程裡說的,「設定的n應該被60整除才行」的意思是:如果n能被60整除,則會相當於每隔n分鐘執行一次,乙個小時正好執行60/n次;如果n不能被60整除,則在能整除和整點(除完餘數為0)的時候都會執行。

下面為測試檔案,設定為*/23分鐘執行。

75 ==> t3 <==

76 thu jan 15 10:46:01 cst 2015

77 thu jan 15 11:00:01 cst 2015

78 thu jan 15 11:23:01 cst 2015

79 thu jan 15 11:46:01 cst 2015

80 thu jan 15 12:00:01 cst 2015

81 thu jan 15 12:23:01 cst 2015

82 thu jan 15 12:46:01 cst 2015

83 thu jan 15 13:00:01 cst 2015

84 thu jan 15 13:23:01 cst 2015

85 thu jan 15 13:46:01 cst 2015

crontab命令用法

任務排程的crond常駐命令 crond 是linux用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。而linux任務排程的工作主要分為以下兩類 1 系統執行的工作 系統週期性所要執行...

crontab用法總結

crontab是什麼 crontab命令常見於unix和類unix的作業系統之中,用於設定週期性被執行的指令。crontab 一詞 於希臘語chronos 原意是時間.而crond是linux下用來週期性的執行某種任務或等待處理某些事件的乙個守護程序,作業系統缺省會安裝此服務工具,並且會自動啟動cr...

crontab用法詳解

crontab命令用於設定週期性被執行的命令,適用於日誌備份,清理快取,健康狀態檢測等場合。crontab的配置檔案 etc crontab 配置檔案分七個字段,分別是 分鐘 小時 日 月 星期 使用者 任務 第一字段分鐘表示每小時的第幾分鐘執行 取值範圍0 59 第二字段小時表示每日的第幾個小時執...