【问题标题】:Cron python script not executing [duplicate]Cron python脚本未执行[重复]
【发布时间】:2023-04-07 06:12:01
【问题描述】:

我已经阅读了一些关于此的帖子,但我无法在其中找到帮助。

我有一个使用 smtplib 发送邮件的 python 脚本。它在从命令行调用时起作用。

我将#!/usr/bin/python 作为第一行,并且可以使用/home/pi/ipsender.pypython /home/pi/ipsender.py 运行它。

我的 crontab 是 */1 * * * * /home/pi/ipsender.py,但我也尝试过 */1 * * * * python /home/pi/ipsender.py*/1 * * * * /usr/bin/python /home/pi/ipsender.py

执行which python 我得到/usr/bin/pyhton 并从命令行运行python 我可以导入和使用smtplib 就好了。

/var/log/syslog 我得到:

Nov 27 22:57:01 raspberrypi /USR/SBIN/CRON[3764]: (pi) CMD (python /home/pi/ipsender.py)
Nov 27 22:57:01 raspberrypi /USR/SBIN/CRON[3763]: (CRON) info (No MTA installed, discarding output)

我猜 No MTA... 只是关于 Cron 不发送关于它正在做什么的电子邮件,或者不是吗?

如何运行此脚本。

[编辑]

脚本的权限是

-rwxr-xr-x 1 pi   pi       551 Nov 27 22:37 ipsender.py

[编辑2]
使用 D Read 的提示,我得到以下日志

starting
Traceback (most recent call last):
  File "/home/pi/ipsender.py", line 7, in <module>
    ifconfig_output = sp.check_output(["ifconfig", "wwan0"])
  File "/usr/lib/python2.7/subprocess.py", line 537, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

向我暗示路径有问题。虽然在/etc/crontab 我有PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binwhich ifconfig/sbin/ifconfig。所以这应该不是问题吧?

【问题讨论】:

  • 文件的权限是什么?
  • -rwxr-xr-x 1 pi pi 551 Nov 27 22:37 ipsender.py
  • 如果你尝试“sudo su”,然后手动运行脚本,是否有效?
  • 您在 crontab 中运行的用户是否与您在 shell 中尝试过的用户相同?确保两种情况下的权限和环境相同。

标签:
python
cron
crontab
smtplib