前言
做自動化測試寫的腳本需要設置定制任務,在指定的時間去執行,這就需要用到定時任務。之前用jenkins可以在里面設置定時任務,很好用,其實在linux上也可以用crontab做定時任務。
cron
在LINUX中,周期執行的任務一般由cron這個守護進程來處理[ps -ef|grep cron]。cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。cron的配置文件稱為“crontab”,是“cron table”的簡寫。
crontab
crontab一般在目錄/etc/crontab, 可以用cat 命令查看里面的內容,用來創建定時任務
輸入命令:cat /etc/crontab
- MAILTO=root是說,當 /etc/crontab 這個檔案中的例行性命令發生錯誤時,會將錯誤訊息或者是屏幕顯示的訊息傳給誰?由於 root 並無法再用戶端收信,因此,我通常都將這個 e-mail 改成自己的賬號,好讓我隨時了解系統的狀態!
- 17 * * * * root cd / && run-parts --report /etc/cron.hourly: 我們可以發現,五個數字后面接的是 root ,這一行代表的是『執行的級別為root身份』當然,你也可以將這一行改為成其他的身份!而 run-parts代表后面接的 /etc/cron.hourly 是『一個目錄內(/etc/cron.hourly)的所有可執行文件』,也就是說,每個小時的17分,系統會以root身份去/etc/cron.hourly這個目錄下執行所有可執行的文件l!后面三行也是類似的意思!你可以到 /etc/ 底下去看看,系統本來就預設了這4個目錄!你可以將每天需要執行的命令直接寫到/etc/cron.daily即可,還不需要使用到crontab -e的程式!
crontab用法
1、crontab命令用於安裝、刪除或者列出用於驅動cron后台進程的表格。用戶把需要執行的命令序列放到crontab文件中以獲得執行。每個用戶都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接創建或者直接修改。該crontab文件是通過crontab命令創建的
2、在crontab文件中如何輸入需要執行的命令和時間。該文件中每行都包括六個域,其中前五個域是指定命令被執行的時間,最后一個域是要被執行的命令。每個域之間使用空格或者制表符分隔。
3、格式如下:
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) 命令行
crontab命令常用的特殊字符:
1、* 表時任何時間
2、, 表示分割,10,20,30表示分表在10分20分30分時執行
3、- 表示一個段,1-5 就是1到5點
4、/n 表示每隔n單位執行一次,比如第二個參數, */2就是每隔2個小時執行一次,也可以寫成1-23/2
crontab命令各參數說明:
1、-e 執行文字編輯器來設定時程表,內定的文字編輯器是vi
2、-l 列出目前的所有時程表
3、-r 刪除目前的時程表
4、-v 列出cron作業的狀態
常用命令
1、crontab -e 進入編輯定時任務界面對定時任務進行增刪改
2、crontab -l 列出所有的定時任務
3、* * * * * /bin/echo 'Hello World!' >> ./test.txt 每隔一分鍾往test.txt中寫入一行'Hello World!'