Linux /etc/cron.d增加定時任務


一般情況下我們添加計划任務時,都是直接修改/etc/crontab。但是,不建議這樣做,/etc/cron.d目錄就是為了分項目設置計划任務而創建的。

例如,增加一項定時的備份任務,我們可以這樣處理:在/etc/cron.d目錄下新建文件crontabAdd,內容如下:

    # m h dom mon dow user command

*/1 * * * * root test >> test.log

cron進程執行時,就會自動掃描該目錄下的所有文件,按照文件中的時間設定執行后面的命令。

cron執行時,也就是要讀取三個地方的配置文件:一是/etc/crontab,二是/etc/cron.d目錄下的所有文件,三是每個用戶的配置文件

 

假設是timedtask.sh腳本(支持多次跑腳本)

#!/bin/bash
#athor check crontab
phpbin="docker exec  b5ac216a8c67  php"         #php運行路徑
File="/vagrant/www/cst-group/console/yii"       #項目路徑

crontabAdd(){
    cat >/etc/cron.d/$1<<EOF
#任務開始

    */1 * * * * root $phpbin $File marketing/activity/coupons >> /vagrant/www/cst-group/test.log

#任務結束
EOF
}

#替換
checkCrontab (){
   cronName="crontabAdd"
   if [ ! -f  /etc/cron.d/$cronName ]
    then
       rm /etc/cron.d/$cronName
   fi
   $cronName  $cronName
}

checkCrontab "$1"
echo -e "\033[32m crontab 已經開始寫入 \033[0m"
運行方式 <br/>
1.服務器直接運行./timedtask.sh
2。其他的構建工具運行
運行之后:

 

 

注意:
1.任務開始和任務結束之間的想法跟在Linux上寫crontab一樣
2.這里必須加上執行用戶才行,否則會運行不了

 


免責聲明!

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



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