Linux 之 crontab定時任務

2022-01-02 Python技術交流圈

前言

Linux crontab是用來定期執行程序的命令。

crond 命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。

linux 任務調度的工作主要分為以下兩類:

系統執行的工作:系統周期性所要執行的工作,如備份系統數據、清理緩存

個人執行的工作:某個用戶定期要做的工作,例如每隔10分鐘檢查郵件伺服器是否有新信,這些工作可由每個用戶自行設置

crond 服務安裝crontab 語法

語法1:crontab [ -u user ] file

語法2:crontab [ -u user ] { -l | -r | -e }

說明:

參數說明:

crontab命令格式:minutes hours day month weeks command

其中minutes 表示分鐘,hours 表示小時,day 表示一個月份中的第幾天,month 表示月份,weeks表示一個星期中的第幾天。command表示要執行的程序命令。

當 minutes 為 * 表示每分鐘都要執行 command,hours 為 * 表示每小時都要執行程序命令,其餘類推

當 minutes 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,hours 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推

當minutes 為 */n 時表示每 n 分鐘個時間間隔執行一次,hours 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推

當 minutes為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,hours 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推

*    *    *    *    *
- - - - -
| | | | |
| | | | + 星期中星期幾 (0 - 6) (星期天 為0)
| | | + 月份 (1 - 12)
| | + 一個月中的第幾天 (1 - 31)
| + 小時 (0 - 23)
+ 分鐘 (0 - 59)

實例
* * * * * echo "hello word" >> test.txt

0 6-12/3 * 12 * /usr/local/bin/bak.sh

0 17 * * 1-5 mail -s "hello world!" test@domain.name < /tmp/maildata

20 0-23/2 * * * echo "haha"

常見問題
# 所有命令需要寫成絕對路徑形式,如: 
/usr/local/bin/docker

# 在 shell 腳本開頭使用以下代碼:
#!/bin/sh
. /etc/profile
. ~/.bash_profile

# 或者在 /etc/crontab 中添加環境變量,在可執行命令之前添加命令 . /etc/profile;/bin/sh,使得環境變量生效,例如:
20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh

結語

相關焦點

  • linux中的crontab定時任務
    軟硬體環境前言crontab是linux系統下自帶的定時任務工具。
  • Linux下定時任務 - crontab
    crond 是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似
  • 【Linux簡單實用小命令022】定時任務crontab
    命令】https://www.runoob.com/linux/linux-comm-crontab.html4、【在線工具】https://tool.lu/crontab/正文怎麼在Linux下定時啟動某個任務?
  • linux crontab 定時任務編寫解析與技巧
    當安裝完成作業系統之後,默認便會啟動此任務調度命令。而 linux 任務調度的工作主要分為以下兩類:語法crontab  { -l | -r | -e }/linux-comm-crontab.html* * * * * program- - - - -| | | | || | | | + 星期中星期幾 (0 -
  • Linux 定時任務調度(crontab),太實用了!
    可以使用crontab定時處理離線任務,比如每天凌晨2點更新數據等,經常用於系統任務調度。linux的crontab服務每隔一分鐘去讀取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的內容。另外,Linux 系列面試題和答案我都整理好了,關注公眾號Java技術棧,回覆:面試,可以在線閱讀。
  • Linux定時任務Crontab學習筆記
    來自:標點符的《Linux定時任務Crontab學習筆記》連結:http://www.biaodianfu.com
  • crontab定時任務
    相信大家在實際工作時,經常碰到這類需求:每天想要定時去備份或者執行某個操作,或者有些任務需要在凌晨某個時間點去執行,那怎麼辦?
  • 簡單介紹Shell中的定時任務 crontab
    這篇文章主要介紹了Shell中的定時任務 crontab,需要的朋友可以參考下crondtab定時任務crondtab是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,crondtab進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務
  • Linux crontab定時任務詳細分解
    cron執行時,需要讀取三個地方的配置文件:一是/etc/crontab,二是/etc/cron.d目錄下的所有文件,三是每個用戶的配置文件。本文詳細分解所有的cron配置文件,闡述區別並運用。    1、/etc/crontab全局定時任務        當我們要增加全局性的計劃任務時,一種方式是直接修改/etc/crontab,負責調度各種管理和維護任務。
  • Linux定時任務crontab命令詳解
    通常在工作中需要資料庫在每天零點自動備份所以需要建立一個定時任務,我選擇在Linux下使用crontab來添加定時任務執行shell文件,shell文件有資料庫備份命令。       crontab命令的功能時在一定的時間間隔調度一些命令的執行。
  • Crontab定時任務概述
    Crond是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程。與windows下的計劃任務類似,當安裝完成作業系統後,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。
  • Linux crontab命令:循環執行定時任務(詳解版)
    autobak.sh[root@localhost ~]# crontab -r#刪除root用戶所有的定時任務。如果只想刪除某個定時任務,則可以執行「crontab -e」命令進入#編輯模式手工刪除[root@localhost ~]# crontab -lno crontab for root#刪除後,再查詢就沒有root用戶的定時任務了在書寫 crontab 定時任務時,需要注意以下幾個事項:6 個選項都不能為空,必須填寫。
  • 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、設置格式
  • Linux下的計劃任務--crontab
    crond 是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成作業系統後
  • Linux定時任務設置
    日常工作中,經常會涉及到設置定時任務,比如每天自動下載數據,自動運行模式及其後處理繪圖等,本篇介紹Linux系統中,使用crontab設置定時任務的方式。
  • Linux下的計劃任務——crontab
    crond 是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成作業系統後,默認會安裝此服務 工具,並且會自動啟動crond進程,crond進程每分鐘會定期檢查是否有要執行的任務
  • Linux之crontab命令
    ,這樣就可以知道它的功能、運行時間,更為重要的是,知道這是哪位用戶的定時作業。系統級任務調度與用戶級任務調度系統級任務調度主要完成系統的一些維護操作,用戶級任務調度主要完成用戶自定義的一些任務,可以將用戶級任務調度放到系統級任務調度來完成(不建議這麼做),但是反過來卻不行,root用戶的任務調度操作可以通過crontab –uroot –e來設置,也可以將調度任務直接寫入/etc/crontab文件,需要注意的是,如果要定義一個定時重啟系統的任務,就必須將任務放到
  • Linux定時任務---定時監測docker容器狀態
    做項目時,有時會遇到docker容器莫名其妙就掛掉了,為了解決這個問題,就想到可以使用linux的定時任務,定時檢測docker容器是否還在運行
  • Linux 之 crontab 使用
    作者:星火燎原智勇連結:https://www.cnblogs.com/liang1101/p/7988671.html定時任務任務調度的crond常駐命令crond 是linux用來定期執行程序的命令。
  • 教你學會在Linux上運行Crontab定時任務
    linux內置的cron進程能幫我們實現這些需求,cron搭配shell腳本,非常複雜的指令也沒有問題。