Mac下使用crontab來實現定時任務


說明:

1、Linux和Mac下操作crontab都是一致的

2、配置文件都在/etc/crontab下,如果沒有就創建。

3、測試發現直接使用crontab -e命令創建的定時任務是放在臨時文件夾的,重啟會刪除,並且與/etc/crontab文件無關聯。

實際操作:

  • 查看 crontab 是否啟動

    sudo launchctl list | grep cron
  • 檢查需要的文件

    $  LaunchAgents  ll /etc/crontab
    ls: /etc/crontab: No such file or directory  #表示沒有這個文件,需要創建一個
  • 創建文件

    sudo touch /etc/crontab 

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文件時給確認提示。
    復制代碼

eg: */1 * * * * /bin/date >> /User/Username(你的用戶名)/time.txt表示每分鍾輸出當前時間到time.txt上.

  • 如果出現以下問題

    crontab: no crontab for hayek - using an empty one
    crontab: "/usr/bin/vi" exited with status 1 
    1. 方法1:EDITOR=vim crontab -e 直接編輯,以后直接crontab -e直接打開就行。
    2. 方法2:export EDITOR=vim
    3. 方法3:向cron進程提交一個crontab文件之前,首先要設置環境變量EDITOR。cron進程根據它來確定使用哪個編輯器編輯crontab文件。9 9 %的UNIX和LINUX用戶都使用vi,如果你也是這樣,那么你就編輯$HOME目錄下的. profile文件,在其中加入這樣一行: 
      EDITOR=vi; export EDITOR

crontab的文件格式

    * 第1列分鍾0~59
    * 第2列小時0~23(0表示子夜)
    * 第3列日1~31
    * 第4列月1~12
    * 第5列星期0~7(0和7表示星期天)
    * 第6列要運行的命令

crontab服務的重啟關閉,開啟

  • Mac系統下

    sudo /usr/sbin/cron start
    sudo /usr/sbin/cron restart
    sudo /usr/sbin/cron stop
  • Ubuntu:

    sudo /etc/init.d/cron start
    sudo /etc/init.d/cron stop
    sudo /etc/init.d/cron restart

總結:

1. sudo touch /etc/crontab

2. crontab -e 打開文件按照vim語法輸入定時任務內容:

eg:  */10 * * * * /usr/bin/python /Users/qiuyunxia/yunxia.qiu/code/mtg-ios-automation/auto_install_ios_app.py -d f028d43c1b8969ab5dce14d163af42105d3dc744 -P 4723 --country CN

 3. sudo /etc/init.d/cron start 啟動服務

4. crontab -l 查看任務的運行情況

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM