Crontab實現定時任務

一、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

 

發佈了89 篇原創文章 · 獲贊 68 · 訪問量 39萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章