1. 程式人生 > >Linux計劃任務定時執行指令碼

Linux計劃任務定時執行指令碼

因工作需要進行大量的資料測試,所以寫了個計劃任務

1 在linux中啟動crontab服務:/etc/init.d/crond start

2 crontab的格式:
#crontab -u <-l, -r, -e>
-u指定一個使用者
-l列出某個使用者的任務計劃
-r刪除某個使用者的任務
-e編輯某個使用者的任務
如果想要編輯一個計劃任務直接在終端輸入
crontab -u 使用者名稱 -e
進入編輯介面,填寫如下格式的
Minute Hour Day Month Week command
分鐘 小時 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
每個欄位代表的含義如下:

程式碼如下:

Minute 每個小時的第幾分鐘執行該任務
Hour 每天的第幾個小時執行該任務
Day 每月的第幾天執行該任務
Month 每年的第幾個月執行該任務
DayOfWeek 每週的第幾天執行該任務,0表示週日
Command 指定要執行的程式 、指令碼或命令

在這些欄位裡,除了“Command”是必須指定的欄位以外,其它欄位皆為可選。對於不指定的欄位,要用“*”來填補其位置。

####3. 幾個特殊符號的含義

“*”代表取值範圍內的數字,
“/”代表”每”,
“-”代表從某個數字到某個數字,
“,”分開幾個離散的數字

舉例:linux系統中有一個test的使用者
終端輸入crontab -u test -e
輸入計劃任務:*/2 * * * * ls >a.txt
:wq後退出。
crontab -u test -l可以檢視新增計劃任務是否成功;
在/etc/crontab中可以看到HOME檔案的路徑,也可以設定,在該路徑下可以找到a.txt

cron服務每分鐘不僅要讀一次/var/spool/cron內的所有檔案,還需要讀一次/etc/crontab,因此我們配置這個檔案也能運用cron服務做一些事情。用crontab配置是針對某個使用者的,而編輯/etc/crontab是針對系統的任務。此檔案的檔案格式是:

  SHELL=/bin/bash

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  MAILTO=root //如果出現錯誤,或者有資料輸出,資料作為郵件發給這個帳號

  HOME=/ //使用者執行的路徑,這裡是根目錄

計劃任務執行指令碼
終端輸入crontab -u test -e
輸入計劃任務:*/2 * * * * /bin/bash  /home/test.x >a.txt
每兩分鐘執行一次使用者test的/home路徑下的test.x指令碼,使用的是bash的shell。
參考:http://1452008.blog.51cto.com/1442008/1377742/http://www.linuxidc.com/Linux/2016-11/137660.htm
http://www.linuxidc.com/Linux/2013-06/86401.htm
https://www.cnblogs.com/zhaopengcheng/p/5813407.html