在 Linux 行話終結者係列的這篇文章中,您將了解 Linux 上的 cron。您還將學習編輯 crontab 以創建 cron 作業的基礎知識。
什麼是 Linux 上的 cron 作業?
Cron 是一個命令行實用程序,用於按計劃執行小而快的命令。這是一個方便而經典的系統管理工具,可與其他工具結合使用來自動執行各種任務。例如,有些人將 rsync 與 cron 結合起來,在特定時間自動創建每日或每周備份。有些人分析服務器日誌,並結合郵件功能在日誌中檢測到任何錯誤時發送郵件。
Cron 就像一把瑞士軍刀。它可用於各種用例。它的使用完全取決於您的想像。
開始使用 cron 非常簡單,只需幾秒鐘。但在我向您展示之前,讓我們先談談經常讓 Linux 用戶感到困惑的事情。
cron 和 cron 作業和 crontab
您可能會遇到三個類似的術語:cron、cron job 和 crontab。讓我簡要解釋一下它們是什麼。
cron:這是您安裝在系統上並作為守護程序運行的實際程序。
Cron 作業:Linux 作業是啟動和運行的程序。 Cron 可以處理多個任務並在預定的時間執行它們。這些任務中的每一個都稱為“cron 作業”。
計劃任務表:這是一個文件(和命令),用於定義要執行的任務及其頻率。 一個 crontab 可以包含多個表格形式的 cron 作業。每一行都是一個 cron 作業。
讓我們分享一個 cron 作業的示例,該作業每小時運行一次,並在文件名 crontab_log.txt 中打印“Linux 很酷!”。
0 * * * * echo "Linux is Cool!" >> ~/crontab_log.txt
即使是最簡單的 cron 作業也可能看起來很嚇人。這是因為您需要知道如何正確讀取 cron 作業。
下一節將這些 cron 理論知識提升到一個新的水平。
開始使用 cron
讓我們從 Cron 工作原理的(其他)簡單示例開始。
要創建 cron 作業或 cron 運行的命令,只需運行以下命令:
crontab -e
拉取文件以編輯 cron 作業。
crontab 的默認視圖
所有以開頭的行 #
(即所有行)的存在只是為了指導您使用 cron。如果你不需要它,你可以刪除它。
但是,將以下內容用於您的第一個 cron 作業:
* * * * * touch ~/crontab_test
讓我們快速看看它做了什麼:
cron 作業以以下格式提供 minute hour day month week command
..
- 分鐘 在這種情況下,它僅表示作業將在一小時內運行多少分鐘。所以,
0
在時間開始時運行並指定5
在 5 分鐘內運行。 - 下一個, 時間 聲明指定作業可以運行的小時數,範圍從 0 到 23。為什麼這裡沒有 24 小時選項
23
午夜 11:59 或中午結束時0
第二天。同樣的邏輯適用minute
上述說法。 - 天 指定可以運行作業的星期幾。也就是1-31(不同於前面例子開頭的)
0
)。 - 月亮 使用 1-12 範圍內的值來指定作業可以運行的月份。
- 最後, 星期 指定作業將運行的日期,從星期日開始,其值介於 0 和 6 之間,與前兩天不同。
下一個, 命令 您要執行的命令。
如果您需要更多幫助來了解分時的日月週部分,強烈推薦 crontab 主控 一個非常有助於準確分析正在發生的事情的網站:
按照前面的例子 * * * * * touch ~/crontab_test 但是,您只需要每分鐘運行一次 touch ~/crontab_test。
把它放在 crontab 中,看看它是如何工作的。
等待下一分鐘,您應該會在主目錄中看到 crontab_test 文件。
以上就是 cron 的基本用法。
有用的 cron 任務示例
它太簡單了(而且可能沒用)。
假設您想做一些更複雜的事情,例如將文件從系統上的多個目錄複製到單個文件夾的備份腳本,並且您需要將備份存檔到單個文件。
這就像將命令放在腳本中一樣簡單。可以使用 cron 調用腳本。
讓我們以下面的腳本為例。
#!/usr/bin/bash
echo "Backing up..."
mkdir -p ~/.local/tmp/
tar -Pc ~/Documents/ -f ~/.local/tmp/backup.gz
該腳本執行以下操作:
- 確保您的系統上存在 ~/.local/tmp/backup_dir 目錄。
- 將所有內容放在 ~/Documents/ 中位於 ~/.local/tmp/backup.gz 的存檔中。
讓我們先手動運行腳本以確保它有效。
首先將腳本放在~/backup_script中,如下:
然後將上述腳本的內容複製到一個文件中。
然後你只需要運行 chmod + x ~/backup_script 並告訴系統允許腳本運行。
然後,您可以通過運行 ~/backup_script.sh 來測試運行腳本。這告訴系統腳本的路徑。
然後,您可以通過運行 tar -xf ~/.local/tmp/backup.gz -C output_dir 來恢復此備份。其中 output_dir 是存儲文件的目錄。
您現在可以使用 Cron 定期運行腳本。
例如,如果您希望腳本在每天凌晨 3 點運行,您可以在 cron 中使用以下語法:
0 3 * * * ~/backup_script
然後進行每日備份。
包起來
這只是對 cron 作業的介紹。我不確定桌面 Linux 用戶的許多用例,但它被系統管理員廣泛使用。如果是這樣,請在評論部分提出一些建議。