Linux cron 计划任务日志跟踪
2024-08-07 14:02:12 217人阅读
场景: 需要在系统的cron中启动一个计划任务,跑的是一个shell脚本,脚本中大致意思是切换至
abc用户执行一个php文件(例如: /data/soft/auto.php),那么现在问题来了,脚本的内
容如下:
1 2 3 4 | #!/bin/bash
sudo -u abc /data/soft/auto .php
echo ‘ >>> auto success !!! ’
|
你会神奇的发现,系统的/var/log/cron日志中已经显示auto success,但是这个程序依然
是没有执行,你怎么知道没执行呢?因为程序有日志,日志没开始刷.
那么下一步该怎么来查找程序未执行的原因?思路是每次执行cron的时候必定会产生记录的文件
根据系统版本查找文件的位置:
操作系统版本4/5 查看 /var/spool/clientqueue/
操作系统版本6 查看 /var/spool/postfix/maildrop/
系统的postfix停掉,没停掉就直接敲mail命令看
进入对应的目录后可以使用 ls -lt|head 命令来截取最后执行的10个cron日志文件,根据时间来判定看
哪个文件,里面必定有报错.根据报错来修改脚本或者系统属性.
我遇到过的两种情况:
1. sudo系统默认警告需要tty,解决办法:将/etc/sudoers文件中Defaults requiretty注释掉.
2. 变量路径引起的,加载你所需要的变量或者定义.
好久没有写,这个问题值得记录,相信很多人还不知道这个排错方式,这也是刚从别人那学的.
萌萌的IT人
Linux cron 计划任务日志跟踪
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。