1. 程式人生 > >使用crontab,讓linux定時執行shell腳本

使用crontab,讓linux定時執行shell腳本

表示 inux 包含 tor span 之間 line mage sun

閱讀目錄

  • 1. cron服務【Ubuntu環境】
  • 2. crontab用法
  • 3. 編輯crontab文件
  • 4. 流程舉例
  • 5. 幾個例子

Linux中,周期執行的任務一般由cron這個守護進程來處理。cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。cron的配置文件稱為“crontab”,是“cron table”的簡寫。

1. cron服務【Ubuntu環境】

查看cron狀態

sudo service cron status

開啟cron

sudo /etc/init.d/cron start

關閉cron

sudo /etc/init.d/cron stop

重啟cron

sudo /etc/init.d/cron restart

技術分享

2. crontab用法

crontab –e : 修改 crontab 文件,如果文件不存在會自動創建。 (這樣可以編輯模式打開個人的crontab配置文件,然後加入一下這行:0 0 * * * /home/linrui/XXXXXXXX.sh

這將會在每天淩晨運行 指定的.sh文件

crontab –l : 顯示 crontab 文件。
crontab -r : 刪除 crontab 文件。

crontab -ir : 刪除 crontab 文件前提醒用戶。

在crontab文件中寫入需要執行的命令和時間,該文件中每行都包括六個域,其中前五個域是指定命令被執行的時間,最後一個域是要被執行的命令。每個域之間使用空格或者制表符分隔。格式如下:

minute hour day-of-month month-of-year day-of-week commands

合法值為:00-59 00-23 01-31 01-12 0-6 (0 is sunday)

除了數字還有幾個特殊的符號:"*"、"/"和"-"、","

  • *代表所有的取值範圍內的數字
  • "/"代表每的意思,"/5"表示每5個單位
  • "-"代表從某個數字到某個數字
  • ","分開幾個離散的數字

:commands 註意以下幾點

  • 要是存在文件,要寫絕對路徑
  • 即使是打印也不會顯示在顯示屏,在後臺運行,最好重定向日誌

3. 使用vim編輯crontab文件

EDITOR=vi
export EDITOR
crontab -e

4. Cron 各項的描述

以下是 crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 區間為 0 – 59
o hour: 區間為0 – 23
o day-of-month: 區間為0 – 31
o month: 區間為1 – 12. 1 是1月. 12是12月.
o Day-of-week: 區間為0 – 7. 周日可以是0或7.

5. 例子解釋

1 0 * * * /home/lenovosh/work/bianyi.sh lumus nedp

在每天淩晨00:01運行 指定的bianyi.sh腳本文件

59 23 * * 1,2,3,4,5 /home/lenovosh/work/bianyi.sh lumus nedp

在每個工作日23:59運行 指定的bianyi.sh腳本文件,或者如下寫法

59 23 * * 1-5 /home/lenovosh/work/bianyi.sh lumus nedp

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

*/1 * * * * /home/lenovosh/work/bianyi.sh lumus nedp

每分鐘運行 指定的bianyi.sh腳本文件

10 14 1 * * /home/lenovosh/work/bianyi.sh lumus nedp

每個月的1號14:10運行 指定的bianyi.sh腳本文件

1 0 * * 1,3,5 /home/lenovosh/work/bianyi.sh lumus nedp

每周一、三、五淩晨00:01運行 指定的bianyi.sh腳本文件

具體想看bianyi.sh(編譯腳本)怎麽實現,請看下一篇博客!

使用crontab,讓linux定時執行shell腳本