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