Bootstrap

crontab本地定时任务

9.2.1 本地定时任务
Crontab是Limux环境中用于配置本地定时任务的工具,其任务计划是由Crond等护进程来进行调度执行的。Crond在如下位置搜索定时任务。
口目录/var/spool/cron这个目录下存放的是每个用户包括root的定时任务,每个任务以创建者的名字命名,比如 tom 建的定时任务对应的文件名字就是/var spool/cron/tom。一般一个用户最多只有一个定时任务文件。
□文件/etc/crontab这个文件负责安排由系统管理员制定的维护系统以及其他任务。
口目录/etc/cron.d这个目录用来存放系统要执行的定时任务文件或脚本。口目录/etc/cron.hourly这个目录用来存放每小时执行的定时任务。口目录/etc/cron.daily这个目录用来存放每天执行的定时任务。


口目录/etc/cron.weekly∶这个目录用来存放每周执行的定时任务。口目录vetc/cron.monthly∶这个目录用来存放每月执行的定时任务。
在实践中、建议把非系统级定时任务放在/var/spool/cron中,这样标准化的配置更容易理解和排错。
使用crontab-e命令可以编辑或者新加入定时任务条目,如在每天早上5点运行root/bin/backup.sh
# crontab -e
0 5 * * * /root/bin/backup.sh
或者在每个工作日(周一到周五)23点59分进行备份作业
# crontab -e
59 23 * * 1,2,3,4,5 /root/bin/backup,sh
笔者在实践中遇到过多次Crontab任务不执行的情况,总结下来主要有以下几个原因
□Crond服务未运行。在CentOS7中,可使用如下命令来验证Crond是否在运
行中


□Cromd服务未运行。在CentOS7中,可使用如下命令来验证Crond是否在运行中
1 systemctl status crond
● srond.service - Command Scheduler
108060:105364 (/sst/115/system/system/ersnd,services enabled:vendst
请参数码∶406180
Hetive:actave(tunning)since Wed2019-01-02 22:44:47 CST:3 weeks 3 dars 净含量∶*****(rumning)说明Cren4 在运行状态
www.pips.9955.come.com
Corewillersem,slice/eron4,service 1-9955 /qsr/shin/eron4-n
口环境变量PATH不完全导致命令我不到。默认情况下,Crond给予定时任务的
PATH环境变量为/ust/bin/bin,所以如果定时任务命令或者脚本中调用的实用程序没有在这个路径下的话会导致无法调用到。因此。建议在定时任务脚本中把PATH环境变量做控制或者使用绝对路径。
口权限间题。比如脚本没有执行权限。可能定时任务所属的用户对某个目录没有


 

;