自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用 cron 調(diào)度任務(wù)

運(yùn)維 系統(tǒng)運(yùn)維
cron 是一個(gè)調(diào)度守護(hù)進(jìn)程,它以指定的時(shí)間間隔執(zhí)行任務(wù),這些任務(wù)稱(chēng)為 corn 作業(yè),主要用于自動(dòng)執(zhí)行系統(tǒng)維護(hù)或管理任務(wù)。

[[399293]]

cron 是一個(gè)調(diào)度守護(hù)進(jìn)程,它以指定的時(shí)間間隔執(zhí)行任務(wù),這些任務(wù)稱(chēng)為 corn 作業(yè),主要用于自動(dòng)執(zhí)行系統(tǒng)維護(hù)或管理任務(wù)。例如,你可以設(shè)置一個(gè) cron 作業(yè)來(lái)自動(dòng)執(zhí)行重復(fù)的任務(wù),比如備份數(shù)據(jù)庫(kù)或數(shù)據(jù),使用最新的安全補(bǔ)丁更新系統(tǒng),檢查磁盤(pán)空間使用情況,發(fā)送電子郵件等等。 cron 作業(yè)可以按分鐘、小時(shí)、日、月、星期或它們的任意組合運(yùn)行。

cron 的一些優(yōu)點(diǎn)

以下是使用 cron 作業(yè)的一些優(yōu)點(diǎn):

  • 你可以更好地控制作業(yè)的運(yùn)行時(shí)間。例如,你可以精確到分鐘、小時(shí)、天等。
  • 它消除了為循環(huán)任務(wù)邏輯而去寫(xiě)代碼的需要,當(dāng)你不再需要執(zhí)行任務(wù)時(shí),可以直接關(guān)閉它。
  • 作業(yè)在不執(zhí)行時(shí)不會(huì)占用內(nèi)存,因此你可以節(jié)省內(nèi)存分配。
  • 如果一個(gè)作業(yè)執(zhí)行失敗并由于某種原因退出,它將在適當(dāng)?shù)臅r(shí)間再次運(yùn)行。

安裝 cron 守護(hù)進(jìn)程

幸運(yùn)的是,F(xiàn)edora Linux 預(yù)先配置了運(yùn)行重要的系統(tǒng)任務(wù)來(lái)保持系統(tǒng)更新,有幾個(gè)實(shí)用程序可以運(yùn)行任務(wù)例如 cron、anacron、at 和 batch 。本文只關(guān)注 cron 實(shí)用程序的安裝。cron 和 cronie 包一起安裝,cronie 包也提供 cron 服務(wù)。

要確定軟件包是否已經(jīng)存在,使用 rpm 命令:

  1. $ rpm -q cronie
  2. Cronie-1.5.2-4.el8.x86_64

如果安裝了 cronie ,它將返回 cronie 包的全名。如果你的系統(tǒng)中沒(méi)有安裝,則會(huì)顯示未安裝。

使用以下命令安裝:

  1. $ dnf install cronie

運(yùn)行 cron 守護(hù)進(jìn)程

cron 作業(yè)由 crond 服務(wù)來(lái)執(zhí)行,它會(huì)讀取配置文件中的信息。在將作業(yè)添加到配置文件之前,必須啟動(dòng) crond 服務(wù),或者安裝它。什么是 crond 呢?crond 是 cron 守護(hù)程序的簡(jiǎn)稱(chēng)。要確定 crond 服務(wù)是否正在運(yùn)行,輸入以下命令:

  1. $ systemctl status crond.service
  2. crond.service - Command Scheduler
  3. Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor pre>
  4. Active: active (running) since Sat 2021-03-20 14:12:35 PDT; 1 day 21h ago
  5. Main PID: 1110 (crond)

如果你沒(méi)有看到類(lèi)似的內(nèi)容 Active: active (running) since…,你需要啟動(dòng) crond 守護(hù)進(jìn)程。要在當(dāng)前會(huì)話(huà)中運(yùn)行 crond 服務(wù),輸入以下命令:

  1. $ systemctl run crond.service

將其配置為開(kāi)機(jī)自啟動(dòng),輸入以下命令:

  1. $ systemctl enable crond.service

如果出于某種原因,你希望停止 crond 服務(wù),按以下方式使用 stop 命令:

  1. $ systemctl stop crond.service

要重新啟動(dòng)它,只需使用 restart 命令:

  1. $ systemctl restart crond.service

定義一個(gè) cron 作業(yè)

cron 配置

以下是一個(gè) cron 作業(yè)的配置細(xì)節(jié)示例。它定義了一個(gè)簡(jiǎn)單的 cron 作業(yè),將 git master 分支的最新更改拉取到克隆的倉(cāng)庫(kù)中:

  1. */59 * * * * username cd /home/username/project/design && git pull origin master

主要有兩部分:

  • 第一部分是 */59 * * * *。這表明計(jì)時(shí)器設(shè)置為第 59 分鐘執(zhí)行一次。(LCTT 譯注:原文此處有誤。)
  • 該行的其余部分是命令,因?yàn)樗鼘拿钚羞\(yùn)行。 在此示例中,命令本身包含三個(gè)部分:
    • 作業(yè)將以用戶(hù) username 的身份運(yùn)行
    • 它將切換到目錄 /home/username/project/design
    • 運(yùn)行 git 命令拉取 master 分支中的最新更改

時(shí)間語(yǔ)法

如上所述,時(shí)間信息是 cron 作業(yè)字符串的第一部分,如上所屬。它決定了 cron 作業(yè)運(yùn)行的頻率和時(shí)間。它按以下順序包括 5 個(gè)部分:

  • 分鐘
  • 小時(shí)
  • 一個(gè)月中的某天
  • 月份
  • 一周中的某天

下面是一種更圖形化的方式來(lái)解釋語(yǔ)法:

  1. .--------------- 分鐘 (0 - 59)
  2. | .------------- 小時(shí) (0 - 23)
  3. | | .---------- 一月中的某天 (1 - 31)
  4. | | | .------- 月份 (1 - 12) janfeb、mar、apr
  5. | | | | .---- 一周中的某天 (0-6) (周日=0 7)
  6. | | | | | sunmon、tue、wed、thr、frisat
  7. | | | | |
  8. * * * * * user-name command-to-be-executed

星號(hào)的使用

星號(hào)(*)可以用來(lái)替代數(shù)字,表示該位置的所有可能值。例如,分鐘位置上的星號(hào)會(huì)使它每分鐘運(yùn)行一次。以下示例可能有助于更好地理解語(yǔ)法。

這個(gè) cron 作業(yè)將每分鐘運(yùn)行一次:

  1. * * * * [command]

斜杠表示分鐘的間隔數(shù)。下面的示例將每小時(shí)運(yùn)行 12 次,即每 5 分鐘運(yùn)行一次:

  1. */5 * * * * [command]

下一個(gè)示例將每月的第二天午夜(例如 1 月 2 日凌晨 12:00,2 月 2 日凌晨 12:00 等等):

  1. 0 0 2 * * [command]

(LCTT 譯注:關(guān)于 cron 時(shí)間格式,還有更多格式符號(hào),此處沒(méi)有展開(kāi))

使用 crontab 創(chuàng)建一個(gè) cron 作業(yè)

cron 作業(yè)會(huì)在后臺(tái)運(yùn)行,它會(huì)不斷檢查 /etc/crontab 文件和 /etc/cron.*/ 以及 /var/spool/cron/ 目錄。每個(gè)用戶(hù)在 /var/spool/cron/ 中都有一個(gè)唯一的 crontab 文件。

不應(yīng)該直接編輯這些 cron 文件。crontab 命令是用于創(chuàng)建、編輯、安裝、卸載和列出 cron 作業(yè)的方法。

更酷的是,在創(chuàng)建新文件或編輯現(xiàn)有文件后,你無(wú)需重新啟動(dòng) cron。

  1. $ crontab -e

這將打開(kāi)你現(xiàn)有的 crontab 文件,或者創(chuàng)建一個(gè)。調(diào)用 crontab -e 時(shí),默認(rèn)情況下會(huì)使用 vi 編輯器。注意:要使用 Nano 編輯 crontab 文件,可以設(shè)置 EDITOR=nano 環(huán)境變量。

使用 -l 選項(xiàng)列出所有 cron 作業(yè)。如果需要,使用 -u 選項(xiàng)指定一個(gè)用戶(hù)。

  1. $ crontab -l
  2. $ crontab -u username -l

使用以下命令刪除所有 cron 作業(yè):

  1. $ crontab -r

要?jiǎng)h除特定用戶(hù)的作業(yè),你必須以 root 用戶(hù)身份運(yùn)行以下命令:

  1. $ crontab -r -u username

感謝你的閱讀。cron 作業(yè)看起來(lái)可能只是系統(tǒng)管理員的工具,但它實(shí)際上與許多 Web 應(yīng)用程序和用戶(hù)任務(wù)有關(guān)。

參考

Fedora Linux 文檔的 自動(dòng)化任務(wù) 

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2024-05-13 09:49:30

.NETQuartz庫(kù)Cron表達(dá)式

2019-11-14 10:00:18

Linuxcron任務(wù)自動(dòng)化任務(wù)

2022-08-15 15:43:29

Linuxcron

2011-12-29 09:15:11

Javacron4j

2022-04-19 09:03:22

Linuxcron命令

2017-11-23 09:00:02

Linuxcron計(jì)劃任務(wù)

2023-08-08 08:35:28

web框架Hosting模塊

2022-11-11 14:55:14

Linuxcron

2017-06-09 13:17:04

Linuxcronanacron

2023-03-01 09:39:40

調(diào)度系統(tǒng)

2023-05-08 16:38:46

任務(wù)調(diào)度分布式任務(wù)調(diào)度

2010-03-09 17:45:11

Linux計(jì)劃任務(wù)

2010-01-07 13:38:41

Linux定時(shí)任務(wù)

2023-12-26 07:44:00

Spring定時(shí)調(diào)度

2013-12-17 10:15:19

OpenMP任務(wù)調(diào)度

2020-04-01 16:10:02

PythonAPScheduler調(diào)度

2021-05-20 09:50:20

鴻蒙HarmonyOS應(yīng)用

2021-08-03 14:33:53

cron定時(shí)器Linux命令

2023-07-31 08:05:30

Spring任務(wù)調(diào)度

2022-04-11 15:56:51

Golang代碼框架
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)