一、cron介紹
經常使用的是crontab命令是cron table的簡寫,它是cron的配置文件,也可以叫它作業列表,可以在以下文件夾內找到相關配置文件。
- /var/spool/cron/ 目錄下存放的是每個用戶包括root的crontab任務,每個任務以創建者的名字命名
- /etc/crontab 這個文件負責調度各種管理和維護任務。
- /etc/cron.d/ 這個目錄用來存放任何要執行的crontab文件或腳本。
- 以把腳本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目錄中,讓它每小時/天/星期、月執行一次。
二、crontab的使用
-u user:用來設定某個用戶的crontab服務;
file:file是命令文件的名字,表示將file做爲crontab的任務列表文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
-e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件。
-l:顯示某個用戶的crontab文件內容,如果不指定用戶,則表示顯示當前用戶的crontab文件內容。
-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。
-i:在刪除用戶的crontab文件時給確認提示。
用crontab -e進入當前用戶的工作表編輯,是常見的vim界面。每行是一條命令。crontab的命令構成爲時間+動作,其時間有分、時、日、月、周五種,操作符有
- * 取值範圍內的所有數字
- / 每過多少個數字
- - 從X到Z
- ,散列數字
使用例子:
在上午8點到11點的第3和第15分鐘執行Command
3,15 8-11 * * *Command
每1分鐘執行一次http請求
* * * * * curl -H 'AccessKey:a338c92c-be3d-4650-8c2d-ccc0be95bea8' -H 'Timestamp:1577265662331' -H 'ExpirationPeriod:600000' -H 'Signature:VI3f7YtkHA13MzIj0DCgXOJS9v84DlgxZKlBAWWo8g8=' 'http://xxx.xxx.com/ds/v1/algorithms?pageIndex=1&pageSize=10&search=&algorithmStatus=RELEASED' >> /Users/psb/output.txt
在輸入執行命令後如果出現以下問題
crontab: no crontab for hayek - using an empty one
crontab: "/usr/bin/vi" exited with status 1
解決方法如下:
(1) EDITOR=vim crontab -e
直接編輯,以後直接crontab -e
直接打開就行。
(2) export EDITOR=vim
(3) 向cron進程提交一個crontab文件之前,首先要設置環境變量EDITOR。cron進程根據它來確定使用哪個編輯器編輯crontab文件。9 9 %的UNIX和LINUX用戶都使用vi,如果你也是這樣,那麼你就編輯$HOME目錄下的. profile文件,在其中加入這樣一行:
EDITOR=vi; export EDITOR
三、crontab服務的重啓關閉,開啓
(1)Mac系統
sudo /usr/sbin/cron start
sudo /usr/sbin/cron restart
sudo /usr/sbin/cron stop
(2)Ubuntu系統
sudo /etc/init.d/cron start
sudo /etc/init.d/cron stop
sudo /etc/init.d/cron restart