crontab 表达式 科普小知识:
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。
crontab表达式说明: * * * * * [user] [command] - - - - - | | | | | | | | | | | | | | +----- 星期 (0 - 7) (Sunday=0 or 7) | | | +---------- 月 (1 - 12) | | +--------------- 日 (1 - 3
crontab命令实例
0 0 L * * #每月的最后1天执行 * * * * * #每1分钟执行一次 */10 * * * * #每隔10分钟执行一次 0 */1 * * * #每隔1小时执行一次 30 21 * * * #每晚的21:30执行 3,15 * * * * #每小时的第3和第15分钟执行 3,15 8-11 * * * #在上午8点到11点的第3和第15分钟执行
cron服务操作命令 service crond start #启动服务 service crond stop #关闭服务 service crond restart #重启服务 service crond reload #重新载入配置 service crond status #查看服务状态 crontab -l #查看crontab crontab -e #编辑crontab crontab -r #删除crontab
问题解决:
问题描述:
在linux服务器指定目录下,创建一个可执行shell脚本,配置好crontab表达式,每天早上8点半执行,并没有定时执行
问题排查:
1、手动执行,验证是否shell脚本是否有问题
使用命令 /bin/bash /opt/check.sh 手动执行,可以运行脚本。排除脚本问题
2、查看cron定时任务日志,看是否触发
一般定时任务日志路径在 /var/log/cron,使用高权限用户查看启动日志。一般会显示 primetonkf CROND[29191]: (root) CMD (/bin/bash /opt/test001.sh)
3、编写测试脚本,脚本中执行输出日志到指定文件
#!/bin/bash
echo "Script started at: $(date)" >> /opt/post/test0603/cron.log
cron.log是当前用户文件夹路径,一般是/home/
4、将脚本的输出和错误重定向到文件的方式来捕获可能的错误信息,修改 crontab
*/3 * * * * /bin/bash /opt/test001.sh >> /opt/cron.log 2>&1
经过以上4步,可以排查处理。为什么crontab配置后不执行。最好在shell脚本中,输出路径为绝对路径,不使用相对路径