Cron 任務入門指南 | Linux 中國

2021-02-19 Linux中國

Cron 是您可以在任何類 Unix 作業系統中找到的最有用的實用程序之一。它用於安排命令在特定時間執行。這些預定的命令或任務被稱為 「Cron 任務」。Cron 通常用於運行計劃備份、監視磁碟空間、定期刪除不再需要的文件(例如日誌文件)、運行系統維護任務等等。在本簡要指南中,我們將看到 Linux 中 Cron 任務的基本用法。

Cron 任務入門指南

cron 任務的典型格式是:

分鐘(0-59) 小時(0-24) 日(1-31) 月(1-12) 星期(0-6) 要執行的命令

只需記住 cron 任務的格式或列印下面的插圖並將其放在你桌面上即可。

在上圖中,星號表示特定的時間塊。

要顯示當前登錄用戶的 crontab 文件的內容:

$ crontab -l

要編輯當前用戶的 cron 任務,請執行以下操作:

$ crontab -e

如果這是第一次編輯此文件,會詢問你使用哪個編輯器來編輯此文件。

no crontab for sk - using an empty one

Select an editor. To change later, run 'select-editor'.

1. /bin/nano <---- easiest

2. /usr/bin/vim.basic

3. /usr/bin/vim.tiny

4. /bin/ed

Choose 1-4 [1]:

選擇適合你的編輯器。這裡是一個示例 crontab 文件的樣子。

在這個文件中,你需要添加你的 cron 任務。

要編輯其他用戶的 crontab,例如 ostechnix,請執行:

$ crontab -u ostechnix -e

讓我們看看一些例子。

要 每分鐘 執行一次 cron 任務,需使用如下格式。

* * * * * <command-to-execute>

要每 5 分鐘運行一次 cron 任務,請在 crontab 文件中添加以下內容。

*/5 * * * * <command-to-execute>

要在每 1/4 個小時(每 15 分鐘)運行一次 cron 任務,請添加以下內容:

*/15 * * * * <command-to-execute>

要每小時的第 30 分鐘運行一次 cron 任務,請運行:

30 * * * * <command-to-execute>

您還可以使用逗號定義多個時間間隔。例如,以下 cron 任務每小時運行三次,分別在第 0、 5 和 10 分鐘運行:

0,5,10 * * * * <command-to-execute>

每半小時運行一次 cron 任務:

*/30 * * * * <command-to-execute>

每小時運行一次:

0 * * * * <command-to-execute>

每 2 小時運行一次:

0 */2 * * * <command-to-execute>

每天運行一項(在 00:00 運行):

0 0 * * * <command-to-execute>

每天凌晨 3 點運行:

0 3 * * * <command-to-execute>

每周日運行:

0 0 * * SUN <command-to-execute>

或使用,

0 0 * * 0 <command-to-execute>

它將在每周日的午夜 00:00 運行。

星期一至星期五每天運行一次,亦即每個工作日運行一次:

0 0 * * 1-5 <command-to-execute>

這項工作將於 00:00 開始。

每個月運行一次:

0 0 1 * * <command-to-execute>

於每月第 1 天的 16:15 運行:

15 16 1 * * <command-to-execute>

每季度運行一次,亦即每隔 3 個月的第 1 天運行:

0 0 1 */3 * <command-to-execute>

在特定月份的特定時間運行:

5 0 * 4 * <command-to-execute>

每個四月的 00:05 運行。

每 6 個月運行:

0 0 1 */6 * <command-to-execute>

這個定時任務將在每六個月的第一天的 00:00 運行。

每年運行:

0 0 1 1 * <command-to-execute>

這項 cron 任務將於 1 月份的第一天的 00:00 運行。

我們也可以使用以下字符串來定義任務。

@reboot 在每次啟動時運行一次。 @yearly 每年運行一次。 @annually(和 @yearly一樣)。 @monthly 每月運行一次。 @weekly 每周運行一次。 @daily 每天運行一次。 @midnight (和 @daily 一樣)。 @hourly 每小時運行一次。

例如,要在每次重新啟動伺服器時運行任務,請將此行添加到您的 crontab 文件中。

@reboot <command-to-execute>

要刪除當前用戶的所有 cron 任務:

$ crontab -r

還有一個名為 crontab.guru[1] 的專業網站,用於學習 cron 任務示例。這個網站提供了很多 cron 任務的例子。

有關更多詳細信息,請查看手冊頁。

$ man crontab

那麼,就是這樣。到此為止,您應該對 cron 任務以及如何在世使用它們有了一個基本的了解。後續還會介紹更多的優秀工具。敬請關注!!

乾杯!

via: https://www.ostechnix.com/a-beginners-guide-to-cron-jobs/

作者:SK[3] 選題:lujun9972 譯者:KevinSJ 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關焦點

  • 在Linux中怎樣使用cron創建定時任務
    cron是創建定時任務的方法,定時任務稱為cronjob,它是在crontab文件中創建的。
  • Linux下的計劃任務--crontab
    crond 是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成作業系統後
  • Linux計劃任務 Crontab 詳解
    //確保atd系統服務啟動[root@linuxidc mydata]# at 08:45at> reboot  //按Ctrl+D鍵提交任務at> <EOT>   job 3 at 2017-06-09 08:45[root@linuxidc mydata]# atq3    2017-06-09 08:45 a root1、設置格式
  • .NET平臺開源項目之Cron任務調度CronNET
    今天給大家介紹一個簡單的在.NET平臺上運行Cron計劃任務的組件CronNET。同時也給大家推介幾個Cron表達式的工具。一、Cron介紹和工具cron是一個linux下的定時執行工具,可以在無需人工幹預的情況下運行作業。cron伺服器可以根據配置文件約定的時間來執行特定的作務。
  • 使用 at 命令在 Linux 上安排任務 | Linux 中國
    相反,你可以通過 at 命令來設置任務。在本文中,我們將研究如何使用 at 來安排任務,如何精確地選擇任務希望運行的時間,以及如何使用 at 來查看安排運行的任務。at vs cron對於那些使用 cron 在 Linux 系統上安排任務的人來說,at 命令類似於 cron,因為你可以在選定的時間調度任務,但是 cron 用於定期運行的作業 —— 甚至是每年僅一次。
  • Linux下的計劃任務——crontab
    crond 是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成作業系統後,默認會安裝此服務 工具,並且會自動啟動crond進程,crond進程每分鐘會定期檢查是否有要執行的任務
  • Linux下定時任務 - crontab
    crond 是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似
  • 這些 Linux 的「自動化」技巧,教你輕鬆完成任務
    linux 系統的 web 網站在運營狀態時,我們常需要對網站進行維護,例如查看資源剩餘並做出響應、日誌分割、數據整理,在特定狀態執行特定任務等等,這些都會需要 linux能實現自動執行某些任任務。本篇博文介紹如何進行常見的linux自動化任務。
  • Linux進程的查看管理與計劃任務
    @linuxidc ~]# ps aux  USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND        VSZ: Virtual memory SiZe,虛擬內存集    RSS: ReSident Size, 常駐內存集    STAT:進程狀態
  • 【Linux簡單實用小命令022】定時任務crontab
    命令】https://www.runoob.com/linux/linux-comm-crontab.html4、【在線工具】https://tool.lu/crontab/正文怎麼在Linux下定時啟動某個任務?
  • Linux定時任務設置
    收錄於話題 #linux 日常工作中,經常會涉及到設置定時任務,比如每天自動下載數據,自動運行模式及其後處理繪圖等,本篇介紹Linux系統中,使用crontab設置定時任務的方式。
  • 玩轉 Linux cron
    從 crond 調度過程說起:crond 會 fork 一個子進程去執行任務,而該進程有會再 fork 一個孫子進程執行真正的命令,代碼的調用邏輯如下。有鎖機制的同時要有超時機制避免程序異常沒有釋放鎖導致後續任務無法執行問題。邪惡的 Davlight Savings  time沒聽說過夏令時?少年你還是太年輕。維基地址 https://zh.wikipedia.org/zh / 夏時制  突然多一個小時少一個小時 cron 怎麼處理呢?
  • linux crontab 定時任務編寫解析與技巧
    當安裝完成作業系統之後,默認便會啟動此任務調度命令。注意:    新創建的 cron 任務,不會馬上執行,至少要過2 分鐘後才可以,當然你可以重啟 cron 來馬上執行。而 linux 任務調度的工作主要分為以下兩類:語法crontab  { -l | -r | -e }
  • .net core 實現基於 cron 表達式的任務調度
    > .net core 實現基於 cron
  • 教你學會在Linux上運行Crontab定時任務
    linux內置的cron進程能幫我們實現這些需求,cron搭配shell腳本,非常複雜的指令也沒有問題。
  • Linux 定時任務調度(crontab),太實用了!
    可以使用crontab定時處理離線任務,比如每天凌晨2點更新數據等,經常用於系統任務調度。服務啟動和關閉一般Linux系統中都會裝有crontab,如果沒有安裝可以使用包管理工具安裝:# vixie-cron 軟體包是 cron 的主程序yum -y install vixie-cronyum -y install crontabs
  • K8S Jobs/Cron Jobs入門教程,輕鬆搞定批處理
    本文將介紹如何創建Kubernetes jobs和cronjobs,以及一些小技巧。Kubernetes Jobs會一直運行到Job中指定的任務完成。也就是說,如果pods給出退出代碼0,那麼Job就會退出。而在正常的Kubernetes中,無論退出代碼是什麼,deployment對象在終止或出現錯誤時都會創建新的pod,以保持deployment的理想狀態。
  • 詳解Unix和Linux作業系統中Cron的用法
    服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:  crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數  crontab -l //列出某個用戶cron服務的詳細內容  crontab -r //刪除沒個用戶的cron服務  crontab -e //編輯某個用戶的
  • Linux之crontab命令
    【Linux常用命令速查手冊】關注【入門小站】,後臺回復 「1001」 自取。通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合。這個命令非常適合周期性的日誌分析或數據備份等工作。
  • Linux計劃任務(1)
    我們通常不會去修改/etc/crontab文件,而是去操作/etc/cron.d/目錄下的crontab文件。該目錄下的計劃任務,相對"run-parts"命令涉及到的四個目錄中的計劃任務,有更自由的調度。