crontab 配置文件
SHELL=/bin/bash 例如: */5 * * * * root /usr/libexec/atrun
minute(m) : 代表一小时内的第几分,范围 0-59。
crond 开机启动 crond 启动/关闭脚本
/etc/init.d/crond help crond 加入到开机启动 chkconfig crond on
crontab定时任务不执行问题 排查原因步骤如下: 首先,确认服务器是否开启定时任务计划服务,只有root用户才能对crond服务进行开启和关闭
[root@mimvp-bj script]# service crond status
请确保crond状态为 is running… 如果crond状态为 crond is stopped ,则定时任务服务不会生效故无法执行,我遇到的crontab不执行就是这个原因
crontab 常见错误的几个问题
编辑 crontab :
# m h dom mon dow command Ctrl + O (写入)——》 Enter键(保存文件名)——》 Ctrl + X(退出) 输入查看命令: crontab -l
# m h dom mon dow command
如果遇到shell语法错误
解决方法: 需指定shell解释器命令:SHELL=/bin/bash(请参见上面 crontab编辑示例 SHELL=/bin/bash) 或者参见: LINUX – BASH Syntax Error
如果遇到路径错误 在 /var/spool/crontab/yanggang 中,添加了如下命令,在日志文件 /var/spool/mail/yanggang 中提示找不到 xxx.sh 路径 30 * * * * /home/barry/top800/top10/top10_fruits/top10_all.sh 或 30 * * * * bash /home/barry/top800/top10/top10_fruits/top10_all.sh 这是因为你在crontab中使用了绝对路径执行脚本 top10_all.sh,因此在脚本 top10_all.sh 中引用的其它脚本也都需要使用绝对路径,才能被crontab找到并执行。 那么该如何避免绝对路径呢,推荐采用如下格式: 30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(推荐用此方式)
先进入该目录,然后在执行脚本;否则,执行脚本中的其它脚本都需要加绝对路径 转载请保留固定链接: https://linuxeye.com/Linux/2248.html |