在 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

該腳本執行以下操作:

  1. 確保您的系統上存在 ~/.local/tmp/backup_dir 目錄。
  2. 將所有內容放在 ~/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 用戶的許多用例,但它被系統管理員廣泛使用。如果是這樣,請在評論部分提出一些建議。