cronjob 没有执行 python 脚本-尝试过 strace

cronjob 没有执行 python 脚本-尝试过 strace

我无法通过 cronjob 运行 python 脚本。

我可以手动运行 python 脚本(它应该连接到数据库,提取一些记录,将其保存为 csv,然后通过电子邮件发送)。但是,我无法让它运行。它应该每分钟运行一次,用于测试。

以下是 crontab -e 中的行:

* * * * * /usr/bin/python /appl/belo_monthly/belo_monthly.py > /appl/belo_monthly/results.log

我已经chmod -x在文件上使用过。我还尝试将print文件的行写入日志。但都不起作用 - 甚至无法创建 .log 文件。

该 python 文件位于#!/usr/bin/python最顶部。

我尝试过的:

我在这里查了一下,发现了这一点:Python 脚本未作为 cronjob 运行

以此作为参考:

  1. 是的,cron守护进程正在运行。pidof cron返回一个值。
  2. 许多其他服务都依赖于此,所以我无法重新启动它。
  3. sudo tail -f /var/log/syslog得到以下信息:

3 月 31 日 10:21:01 ip-XX-XXX-XXX-XX CRON[30223]: (ubuntu) CMD (/usr/bin/python /appl/belo_monthly/belo_monthly.py > /appl/belo_monthly/results.log)

一分钟后,它又添加了一行类似的内容。

  1. 最后,我尝试了这个:sudo strace -f -p pidof cron。它返回了以下内容:

execve("/bin/sh", ["/bin/sh", "-c", "/usr/bin/python /appl/belo_month"...], [/* 6 变量 */]) = 0

然后是一些乱码文本,如下所示:

open("/appl/belo_monthly/results.log", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EACCES (Permission denied)
write(2, "/bin/sh: 1: ", 12) = 12
write(2, "cannot create /appl/belo_monthly"..., 63) = 63
write(2, "\n", 1)           = 1
exit_group(2) 

所以我在想,它无法创建日志。但是 Python 脚本怎么办?发生了什么?

答案1

甚至不会创建 .log 文件

您为其设置 cronjob 的用户是否对 /appl/belo_monthly/results.log 具有写入权限?您是以普通用户身份还是以 root 身份创建 cronjob 的?

相关内容