Cron是什麼?利用Cron Job自動執行定時任務

原文鏈接 : Cron是什麼?利用Cron Job自動執行定時任務 – 草根SEO博客 (simcf.cc)

Cron

Cron是一個實用程序,用於在特定的時間自動執行重複任務。在Linux中,常用 cron 服務器來完成這項工作,以下是Cron的工作原理:

如果想稍後執行特定任務一次,可以使用其他命令。但是,對於重複性任務,cron是完美的解決方案。Cron是一個守護進程,這意味着它在後臺運行以執行非交互式任務。類似Windows後臺進程中的服務。

守護程序始終處於空閒狀態,並等待命令請求執行某項任務 – 在計算機內或從網絡上的任何其他計算機執行。cron文件是一個簡單的文本文件,包含在特定時間運行的命令。

默認crontab文件是/ etc / crontab,位於crontab目錄/etc/cron.*/.,只有系統管理員才能編輯系統crontab文件。但是,由於類Unix操作系統支持多個用戶,每個用戶還可以創建自己的crontab文件並啓動命令以隨時執行任務,cron守護程序將檢查文件並在系統後臺運行該命令。

使用cron作業,可以自動執行系統維護,磁盤空間監視和備份計劃。由於其性質,cron作業非常適合全天候工作的計算機 – 服務器。

請注意,雖然cron作業主要由系統管理員使用,但它對Web開發人員也非常有用。例如,要停用已過期的帳戶,檢查損壞的鏈接,甚至爲目標用戶發送簡報都可以使用cron作業。

Cron工作的基礎知識

基本上,可以使用幾種不同的方法創建和編輯cron作業。在本教程中,我們想向您展示如何使用Linux Shell Prompt(終端)來完成它。

以下是cron作業可以執行的一些基本操作:

如果要編輯當前用戶的crontab文件,請在終端中鍵入crontab -e:

它會爲您提供這樣的結果

在使用vi編輯器時,可以學習基本的vi命令,以確保採取正確的操作。

如果要編輯其他用戶的crontab,可以鍵入crontab -u username -e。請記住,您只能以超級用戶身份執行此操作,這意味着需要在命令之前鍵入:sudo su。

另一個操作允許您查看是否創建了任何crontab文件,只需鍵入crontab -l即可。如果沒有,您將看到此結果。

此外,如果要查看其他用戶的crontab文件列表,可以鍵入crontab -u username –l

除了解基本操作外,學習基本語法也很重要。

基本上,crontab文件由兩部分組成:調度計時器和命令,這是命令的編寫方式:

* * * * * / bin / sh backup.sh

***** / bin / sh backup.sh cronjob意味着它將每分鐘運行一次備份。

30 18 * * * rm / home / sydtesting / tmp / *表示它每天下午6:30 從/ home / sydtesting / tmp中刪除tmp文件。

如何正確編寫Cron語法?

如前所述,crontab文件有五個字段 – 每個字段用星號表示 – 以確定某個任務集重複執行的日期和時間。

Minute – 運行命令的分鐘,範圍從0到59

Hour  – 命令將在什麼時間運行,範圍從0到23

Day of the month – 命令運行的月份的某一天,範圍從1到31

Month – 指定命令運行的月份,範圍從1到12

Day of the week – 希望命令運行的星期幾,範圍從0到7

除此之外,您還需要在每個crontab文件中使用正確的字符。

Asterisk (*)  – 定義所有調度參數。

Comma (,) – 保持單個命令的兩個或更多執行時間。

Hyphen (-) – 確定設置單個命令的多個執行時間的時間範圍。

Slash (/) – 用於在特定範圍內創建預定的時間間隔。

Last (L)  – 用於確定給定月份中一週的最後一天的特定目的,例如,3L表示最後一個星期三。

Weekday (W) – 確定給定時間的最近工作日,例如,1W表示如果第1個是星期六,則命令將在星期一(第3個)運行。

Hash (#) – 用於確定星期幾,後跟1到5之間的數字。例如,1#2表示第二個星期一

Question mark (?) – 留空。

11 Cron語法示例

在繼續之前,請記住該命令的輸出將自動發送到本地電子郵件帳戶。因此,如果要停止接收這些電子郵件,可以將> / dev / null 2>&1添加到語法中,如以下示例所示:

0 5 * * * /root/backup.sh> / dev / null 2>&1
 

此外,如果要將電子郵件輸出發送到特定帳戶,則可以添加MAILTO,然後添加電子郵件地址,如下:

MAILTO = “[email protected]

0 3 * * * /root/backup.sh> / dev / null 2>&1
 

更多語法示例:

0 0 * * * / bin / sh backup.s——在每天午夜執行數據庫備份。

0 6,18 * * * / bin / sh backup.sh   ——在上午6點和下午6點每天執行兩次數據庫備份

0 * / 6 * * * /scripts/monitor.sh——每六個小時進行一次監控

* / 10 * * * * /home/user/script.sh——每10分鐘爲主目錄中的腳本文件執行一次cron作業

0 * 20 7 * / bin / sh backup.sh——在7月20日每小時運行一次數據庫備份。

0 0 * * 2 * / bin / sh——在每個星期二的零點運行數據庫備份

* * * 1,2,5 * /script/script.sh——在1月,2月和5月運行命令

10-59 / 5 5 * * * /home/user/script.sh     ——在凌晨5點開始每隔5分鐘運行一次命令,從早上5:10開始

0 8 1 * / 3 * /home/user/script.sh——每季度在第一天早上8點運行一個命令

* * * * * /scripts/script.sh; /scripts/scrit2.sh——在單個cron作業上設置多個任務的計劃

@reboot /scripts/script.sh——每次啓動系統時執行某項任務

結論

設置自動計劃的任務不僅實用,而且還可以防止錯過按時採取的假設行動。Cron Job是一種管理此類任務的好方法,無論是作爲系統管理員還是像Web開發人員這樣的職業,您需要做的就是使用正確的命令並選擇正確的時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章