Linux系統管理之定時任務

九派Linux發表於2020-09-01

我們來平民化的理解一下什麼是定時任務,Linux定時任務類似於我們平時生活中的鬧鐘,根據我們設定好的時間,定點去執行某件事情。Linux定時任務命令是 crontab,該命令需要 crond 服務支援。在安裝完作業系統後,系統預設會安裝 crond 服務,並且該服務預設是自啟動狀態。

為什麼要用到定時任務

計劃任務主要是做一些定期週期性的任務,比如每天凌晨1點定時備份重要的資料、每天凌晨2點清理一些垃圾檔案等。

計劃任務主要分為以下兩種使用情況:

  • 系統級別的定時任務

臨時檔案清理、系統資訊採集、日誌檔案切割

  • 使用者級別的定時任務

定時備份系統配置檔案、定時備份資料庫的資料

crond 常用命令

  • 檢視 crond 服務的執行狀態

    $ service crond status

image

我們看到crond服務狀態是active running執行中。

  • service crond start //啟動服務

  • service crond stop //關閉服務

  • service crond restart //重啟服務

  • service crond reload //重新載入配置

配置定時任務

cron有兩個配置檔案,一個是一個全域性配置檔案(/etc/crontab),是針對系統任務的;一組是crontab命令生成的配置檔案(/var/spool/cron下的檔案),是針對某個使用者的。

我們先來看看/etc/crontab檔案:

$vi /etc/crontab

image

1、任務執行時間格式講解

來看看上面的截圖例子,有5個*符號,他們分別代表的意思如下表:

專案 含義 範圍
第一個”*” 一小時當中的第幾分鐘(minute) 0~59
第二個”*” 一天當中的第幾小時(hour) 0~23
第三個”*” 一個月當中的第幾天(day) 1~31
第四個”*” 一年當中的第幾個月(month) 1~12
第五個”*” 一週當中的星期幾(week) 0~7(0和7都代表星期日)

以上表格中的時間表示,都是標準的形式,在我們實際的使用過程中,可能對於時間的要求更加複雜,比如想在每天的凌晨1點至3點,6點至10點執行任務等這種比較複雜的情況,我們該如何設定時間呢?我們先來看下時間表達的一些特殊符號:

特殊符號 含義
*(星號) 代表任何時間。比如第一個”*”就代表一小時種每分鐘都執行一次的意思。
,(逗號) 代表不連續的時間。比如” 0 8,12,16 * * *命令”就代表在每天的 8 點、12 點、16 點執行一次
-(中槓) 代表連續的時間範圍。比如”0 5 * * 1-6命令”,代表在週一到週六的凌晨 5 點 0 分執行
/(正斜線) 代表每隔多久執行一次。比如”*/10 * * * *命令”,代表每隔 10 分鐘就執行一次
2、任務執行時間舉例
  • 30 20 * * * 在 20 點 30 分執行命令
  • 0 14 * * 1 在每週一的 14 點 0 分執行命令
  • 0 2 1,15 * * 在每月 1 號和 15號的凌晨 2 點 0 分執行命令
  • 30 3 * * 1-5 在每週一到週五的凌晨 3 點 30 分執行命令
  • */10 3 * * * 在每天的凌晨 3 點,每隔 10 分鐘執行一次命令
  • 0 0 1,15 * 1 在每月 1 號和 15號,每週一會執行命令
3、使用舉例
  • 讓系統每隔 5 分鐘就向 /tmp/test 檔案中寫入一行“test crontab”,我們來驗證一下系統定時任務是否會正常執行:

$crontab -e

進入編輯介面之後,輸入:

*/5 * * * * /bin/echo "test crontab" >> /tmp/test

然後按一下Esc,輸入:wq!儲存,儲存之後,會在/var/spool/cron目錄生成一個root檔案,因為我是用root賬戶建立的。

image

5分鐘後,我們去看看/tmp目錄已經生成了test檔案,並且檔案中已經寫入了一條test crontab

  • 讓系統在每週一的凌晨1 點 10 分重啟一次

5 5 * * 1 /sbin/shutdown -r now

注意事項

  • 時間+需要執行的任務選項都不能為空,必須填寫
  • crontab 定時任務的最小有效時間是分鐘,最大有效時間是月。
  • 在定時任務中,不管是直接寫命令,還是在指令碼中寫命令,最好都使用絕對路徑。有時使用相對路徑的命令會報錯
  • 在定義時間時,日期和星期最好不要在一條定時任務中出現,因為它們都以天為單位,非常容易混淆,不便於管理

image

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章