crontab 执行异常

crontab经常断续执行


crontab -l

12 5 * * * /data0/apache/cgi-bin/tongji.pl >> /data0/apache/cgi-bin/fgtongji.log

代码如上,可是就是不执行。只是这段不执行,其他的crontab都没问题

但是我执行

/data0/apache/cgi-bin/tongji.pl >> /data0/apache/cgi-bin/fgtongji.log

确可以执行呢?

perl文件的权限是 755的

奇怪
还请指教 谢谢

-----------------------------------------------------------------------------------

请问楼主是以什么身份登陆的系统?

----------------------------------------------------------------------------------

# m h dom mon dow user command
00 10 * * * root /usr/sbin/mysqlbackup

你没有标明 以哪个用户权限来执行。

----------------------------------------------------------------------------------

我用的root用户
添加的时候也是用root用户用crontab -e来添加的

--------------------------------------------------------------------------------

把5 改成05试试

--------------------------------------------------------------------------------

你?定crond是否真的在?行... 先check??.
再?, 你可以把?行cronjob?的log?出到一??案, 那就知道??在那了...
--------------------------------------------------------------------------------

我也遇到过这个问题,先用ntsysv检查cron是否启动,如果启动,我觉得最好不用crontab -e来添加任务(我用了也没成功),我在crontab中手动加入了定时任务,同时在/var/spool/cron中的root文件中加入和/etc/crontab中一样的定时内容,从起服务就好了。

--------------------------------------------------------------------------------

1、看cron是否启动
2、用户身份是否正确
--------------------------------------------------------------------------------

crond里的每个任务建立后一定敲个回车,否则crond不能识别该条语句
--------------------------------------------------------------------------------

同意三楼的意见,您可以查查是用什么用户执行的.而且还必须把用户加入crontab脚本中.


crontab的异常(可能性参考)
近期碰到有服务器上线后,crontab都发生异常没有自动执行,查看了下日志,发现问题:
Apr 16 11:26:01 imysql.cn crond[28354]: (*system*) BAD FILE MODE (/etc/cron.d/flushhost)
Apr 16 11:26:01 imysql.cn crond[28354]: (root) BAD FILE MODE (cron/root)
检查了下 /etc/cron.d/ 目录下的其他文件,发现 flushhost 的属性是 755,其他的则是 644,于是将这个脚本属性也改成644,问题解决。

crontab日志


昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang在了什么地方。
1.linux
看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察
2. unix
在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。
3. mail任务
在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f/var/spool/mail/root 即可查看最近的crontab执行情况。





### Crontab 执行生成日志的方法及配置 Crontab 是一种强大的工具,可以用来自动化执行周期性的任务。当需要调试或记录任务运行情况时,可以通过重定向标准输出和错误输出到文件的方式实现日志记录。 #### 配置方法 在定义定时任务时,通过 `>` 或者 `>>` 将标准输出 (stdout) 和错误输出 (stderr) 重定向至指定的日志文件中。以下是具体操作方式: 1. **仅保存标准输出** 如果只需要捕获正常的标准输出内容,则可以在命令后面加上 `> /path/to/logfile.log` 来覆盖原有日志或将新数据追加到已有日志中[^1]。 2. **同时保存标准输出与错误输出** 若要同时捕获标准输出和错误输出,可使用以下语法之一: - 使用 `&>` 同时将 stdout 和 stderr 输出到同一文件中(适用于 Bash 版本较新的系统)。例如: ```bash * * * * * php /path/to/script.php &>/path/to/cron.log ``` - 明确分开处理两种流,即先将错误输出重定向给标准输出再统一写入目标文件。例如: ```bash * * * * * php /path/to/script.php >>/path/to/output.log 2>&1 ``` 3. **设置环境变量以便更好地控制行为** 有时可能遇到某些程序无法找到必要的路径或者依赖库等问题,这是因为 cron 的默认环境变量较少所致。因此建议显式声明所需的 PATH 变量以及其它必要参数于 crontab 文件顶部位置。例如: ```bash SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO=user@example.com HOME=/ ``` 以上这些设定能够确保即使是在非交互式的 shell 下也能顺利加载全部所需资源并发送邮件通知管理员关于任何异常状况的信息[^2]。 4. **实际案例展示** 假设有一个 PHP 脚本 `/var/www/html/myphpscript.php`, 我们希望每分钟都去调用一次该脚本并将每次的结果连同可能出现的错误一起存放到名为 `cronjob_php_output.txt` 的文本档里, 则应该这样编写对应的条目: ```bash * * * * * php /var/www/html/myphpscript.php >> /home/user/cronjob_php_output.txt 2>&1 ``` 此表达意味着每隔一分钟就触发一次上述提到的那个特定地址下的 .php 文件,并把其产生的所有消息——无论是正常的还是有错误提示的那种——全都附加进位于用户家目录中的那个叫做 'cronjob_php_output' 的纯文字档案之中[^3]。 ### 注意事项 - 日志文件权限需适当调整以防止安全风险; - 应定期清理旧的日志以防占用过多磁盘空间;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值