最近系統服務器進行搬遷,又剛好須要使用定時任務運行程序,而個人程序主要使用PHP寫的,而後總結了下定時任務的用法,可是在這裏主要寫的是關於crontab命令的用法,使用過程當中遇到很多問題,例如no crontab for root等問題。php
1.確認crontab是否安裝ubuntu
# crontab -lvim
若是報 「command not found」 ,就說明該crontab服務沒有安裝centos
若是報 「no crontab for root」 ,就說明已經安裝crontab服務了,請跳過步驟一,至於出現這個提示的解決辦法請往下看。服務器
2.安裝crontab服務編輯器
centos系統,請執行如下命令:測試
//vixie-cron軟件包是cron的主程序; spa
# yum install -y vixie-cron rest
//rontabs軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序blog
# yum install crontabs
//啓動服務
# /sbin/service crond start 或者 systemctl crond start
//加入開機自動啓動
# chkconfig --level 35 crond on
ubuntu、debian系統,請執行如下命令:
//安裝crontab服務
# apt-get install cron
//啓動crontab服務(同時還有service cron stop 中止服務,service cron restart 重啓服務)
# service cron start
3.測試是否安裝成功了
繼續執行上面第一條命令:crontab -l
這時會出現 「no crontab for root」 這是因爲你尚未建立任何定時任務或者命令打錯,即沒有使用crontab -e命令去建立任何任務。可是到了這裏,你的安裝基本能夠了。crontab命令詳情請看下步
1.crontab命令主要有3個參數:
-e :編輯用戶的crontab
-l :列出用戶的crontab的內容
-r :刪除用戶的crontab的內容
2.功能說明:設置計時器
補充說明:cron是一個常駐服務,它提供計時器的功能,讓用戶在特定的時間得以執行預設的指令或程序。只要用戶會編輯計時器的配置文件,就可使用計時器的功能。其配置文件格式以下:
語法:crontab [-u <用戶名稱>][配置文件] 或 crontab [-u <用戶名稱>][-elr]
參數:
-e 編輯該用戶的計時器設置。
-l 列出該用戶的計時器設置。
-r 刪除該用戶的計時器設置。
-u<用戶名稱> 指定要設定計時器的用戶名稱。
3.crontab -e命令詳解
# crontab -e
若是第一次執行上面命令時,會讓你選擇編輯器,不過有些終端會默認幫你選擇nano編輯器的,通常咱們都會修改編輯器爲vim,具體方法請看步驟三。
而後會打開一個crontab的文件,而後點擊 i 進行輸入模式,輸入一下內容:
//每隔一分鐘執行一次test.php
# * * * * * php /var/test.php
輸入完後保存退出,:wq。而後重啓crontab服務
// 不一樣服務器命令不同,詳情請看步驟一
# service cron restart
4.crontab -l
查看crontab有哪些定時任務在執行,這裏沒什麼好弊述的。
5.crontab格式
基本格式:* * * * * command
格式說明:上面的*表明着不一樣的時間點,具體排序以下:分 時 日 月 周。
例如:
* * * * * php /var/www/hello/index.php >> /tmp/log/index.txt
//表示每分鐘執行一次,整句話的意思是說每分鐘執行使用php執行index.php文件,並將信息打印到/tmp/log/index.txt文件中,具體路徑本身改
這裏加個技巧關於查看某個文件,但又不想vim <文件名>的。可使用cat <文件名>命令
1. * */2 * * * php /var/www/index.php >> /tmp/index.txt
2. * * */1 * * php /var/www/index.php >> /tmp/index.txt
// 若是要設置沒隔多久執行,則寫爲「*/數字」,在哪一個位置就表明每隔多久執行一次。上面命令分別表明:
1.每隔2小時執行一次
2.每隔一天執行一次
1.debian終端下默認編輯器爲nano,好比crontab -e就會打開nano,這個編輯器用起來很不習慣,想修改成vim,固然,你的debian系統必須先安裝vim.若是已經安裝vim,請輸入以下命令:
# update-alternatives --config editor
而後選擇/usr/vim/vim.basic就能夠了,vim.tiny與vim.basic的區別是vim.basic爲徹底版的vim,而vim.tiny爲簡化版,功能上有所區別,如不支持高亮等等.
輸入數字 2 ,回車,再次打開crontab -e便可。