Linux下的crontab定時執行任務命令


0x00 簡介

在LINUX中,周期執行的任務一般由cron這個守護進程來處理[ps -ef|grep cron]。cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。
cron的配置文件稱為“crontab”,是“cron table”的簡寫。

0x01 cron服務

cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下運行作業。

  • service crond start //啟動服務
  • service crond stop //關閉服務
  • service crond restart //重啟服務
  • service crond reload //重新載入配置
  • service crond status //查看服務狀態

0x02 配置

cron在3個地方查找配置文件:

2.1 /var/spool/cron/

這個目錄下存放的是每個用戶包括root的crontab任務,每個任務以創建者的名字命名。
比如tom建的crontab任務對應的文件就是/var/spool/cron/tom,一般一個用戶最多只有一個crontab文件。

2.2 /etc/crontab

這個文件負責安排由系統管理員制定的維護系統以及其他任務的crontab。

MAILTO=root:當 /etc/crontab 這個檔案中的例行性命令發生錯誤時,會將錯誤訊息或者是屏幕顯示的訊息傳給誰?

  • 由於 root 並無法再用戶端收信,因此,我通常都將這個 e-mail 改成自己的賬號,好讓我隨時了解系統的狀態!

  • 01 * * * * root run-parts /etc/cron.hourly:在 #run-parts 這一行以后的命令,我們可以發現,五個數字后面接的是 root ,這一行代表的是『執行的級別為root身份』

  • 當然,你也可以將這一行改為成其他的身份!而 run-parts代表后面接的 /etc/cron.hourly 是『一個目錄內(/etc/cron.hourly)的所有可執行文件』。

  • 也就是說,每個小時的01分,系統會以root身份去/etc/cron.hourly這個目錄下執行所有可執行的文件!后面三行也是類似的意思!你可以到 /etc/ 底下去看看,系統本來就預設了這4個目錄!你可以將每天需要執行的命令直接寫到/etc/cron.daily即可。

2.3 /etc/cron.d/

這個目錄用來存放任何要執行的crontab文件或腳本。

0x03 命令參數

crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]

選項	描述
e	編輯計划任務
l	列出計划任務
r	刪除計划任務
i	刪除之前確認
u	指明所屬用戶

0x04 常見用法

4.1 添加或更新crontab中的命令

crontab -e

添加或更新crontab中的命令

crontab -u username -e

默認情況下,系統會編輯當前登錄用戶的crontab命令集合。需要編輯其他用戶的命令集合,需要使用到如上的命令

4.2 查看已設置的Crontab命令

crontab -l

查看當前系統登錄用戶的Crontab命令集合

crontab -u username -l

查看其他用戶的Crontab命令集合

0x05 crontab文件內容分析

cat /etc/crontab

前四行是用來配置crond任務運行的環境變量

第一行SHELL變量指定了系統要使用哪個shell,這里是bash

第二行PATH變量指定了系統執行命令的路徑

第三行MAILTO變量指定了crond的任務執行信息將通過電子郵件發送給root用戶

如果MAILTO變量的值為空,則表示不發送任務執行信息給用戶

第四行的HOME變量指定了在執行命令或者腳本時使用的主目錄。

星號(*):代表所有可能的值,如month字段為星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。

逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”

中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”

正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。

小 結:

  • 數字的表示最好用2為阿拉伯數字顯示
  • 周和日最好不要同時用
  • 定時任務要加注解
  • 可以定向到日志文件或者空文件
  • 定時任務一定是絕對路徑,且目錄必須存在才能出結果
  • crontab 服務一定要開啟運行

0x06 參考鏈接

https://www.cnblogs.com/ftl1012/p/crontab.html
https://www.jianshu.com/p/3528b484302f
https://www.cnblogs.com/yanzi-meng/p/9156812.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM