直接运行命令正常,但crontab定时任务调用无效-排查解决过程记录

本文介绍了在Linux环境中,PHP脚本通过crontab进行定时任务调用时遇到的问题及解决方法。首先确认crontab日志显示任务已调用,然后发现环境变量未配置导致php72无法识别,通过指定绝对路径解决问题,最终脚本执行成功。

背景

环境:linux 

脚本语言:php

问题:直接运行脚本命令正常,但crontab定时任务调用无效问题

1、查看crontab日志 

tail -f /var/log/cron

 效果如图,看到已经crontab有调用我们写的命令,排除crontab没运行

 2、环境变量排查

脚本中php72能正常调用

 但通过查看profile文件和.bash_profile文件查看并没配置php72为环境变量,并定位到php72是通过/usr/local/bin/ 设置的而非环境变量

//为系统的每个用户设置环境信息和启动程序,当用户第一次登录时,该文件被执行,其配置对所有登录的用户都有效
vim /etc/profile
//为当前用户设置专属的环境信息和启动程序,当用户登录时该文件执行一次。 
vim ~/.bash_profile

* * * * * php72   /Jingkai/www/jingkai/gdlgxy-kzbm/artisan  schedule:run  >>  /dev/null 2>&1

将 php72改为访问绝对路径

* * * * * /server/php/72/bin/php  /Jingkai/www/jingkai/gdlgxy-kzbm/artisan  schedule:run  >>  /dev/null 2>&1

 再次保存运行,脚本执行成功

好了,本文分享到此,希望对你有所帮助!

在 AIX 系统中,`crontab` 的执行记录通常不会直接保存在某个特定的日志文件中,而是依赖于系统的日志机制。具体来说,`cron` 的运行情况会记录在系统日志中,通常是 `/var/log/cron` 或 `/var/adm/cron/log` 文件中,这取决于系统的配置。 要查看 `crontab` 在当天的执行记录,可以使用以下方法: - **使用 `grep` 过滤当天的日志条目** 假设系统日志文件为 `/var/adm/cron/log`,可以通过以下命令查看当日的执行记录: ```bash grep "$(date '+%b %d')" /var/adm/cron/log ``` 该命令通过 `date` 获取当前的月份和日期(如 `Oct 10`),然后使用 `grep` 在日志文件中查找匹配的行,从而筛选出当天的日志信息。 - **使用 `errpt` 查看系统错误日志** 如果怀疑 `cron` 任务执行过程中出现了异常,可以结合 AIX 的错误日志查看工具 `errpt` 来进一步排查问题。例如,使用以下命令列出详细的错误日志: ```bash errpt -a ``` 该命令将显示包括时间戳、错误标识符、错误描述等在内的详细信息,有助于定位潜在的执行问题[^2]。 - **配置 cron 日志输出** 如果系统默认未启用详细的 `cron` 日志记录,可以通过修改 `/etc/syslog.conf` 文件,确保以下条目存在并启用: ``` cron.debug /var/log/cron ``` 然后重启 `syslogd` 服务以应用更改: ```bash refresh -s syslogd ``` 这样可以让 `cron` 任务的执行信息记录到 `/var/log/cron` 文件中,便于后续分析。 此外,如果希望更精细地控制 `cron` 任务的调试信息,可以在编写 `cron` 任务时,将脚本的标准输出和标准错误重定向到特定的日志文件。例如: ```bash 0 2 * * * /opt/scripts/backup.sh >> /opt/logs/backup.log 2>&1 ``` 该配置将在每天凌晨 2 点执行 `backup.sh` 脚本,并将输出追加写入 `/opt/logs/backup.log` 文件中,便于后续的日志分析和问题排查。 ### 日志内容示例 典型的 `cron` 日志条目可能如下所示: ``` Oct 10 02:00:00 aixhost CROND[1234]: (admin) CMD (/opt/scripts/backup.sh) Oct 10 02:05:00 aixhost CROND[1235]: (root) CMD (/usr/lib/sa/sa1) ``` 这些条目表示 `cron` 在指定时间执行了特定用户的命令。 ### 日志文件权限管理 需要注意的是,`/var/adm/cron/log` 或 `/var/log/cron` 文件通常需要 root 权限才能访问。如果普通用户需要查看日志,应通过 `sudo` 提权或由系统管理员协助完成。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值