gpt4 book ai didi

python - Cron 作业运行成功但没有任何反应

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:41 25 4
gpt4 key购买 nike

我对创建 cron 作业和一般的 linux 环境还很陌生,如果问题听起来太简单,请提前致歉。我会尽量清楚地提出我的问题。就这样吧,

我已经使用 Python(3.5.2 版本)创建了一个简单的电子邮件(发送给自己)脚本,我想使用 cron 作业计划安排此脚本每 2 分钟运行一次。我正在使用存储我的 Python 脚本的 SSH 登录远程 Linux 服务器。当我使用 linux 终端手动运行脚本时,脚本运行得非常好。当我尝试为该脚本安排一个 cron 作业计划时,我猜测该脚本正在运行,因为我可以使用

在日志中看到运行
sudo grep CRON /var/log/syslog

我在日志中看到的是这样的

Dec 30 19:38:01 abc-abcStation CRON[18707]: (abc) CMD (/home/abc/anuj/TPA/Test_Cron.py)

每隔2分钟

但是运行没有做它应该做的事情(发送电子邮件),而当我手动运行它时它会做。我的 cron 作业看起来像这样

*/2 * * * * /home/abc/anuj/TPA/Test_Cron.py

邮件发送脚本是 Test_Cron.py,如下所示

import smtplib

server = smtplib.SMTP('smtp.office365.com', 587)
server.starttls()
server.login("username@mycompany.com", "mypassword")

msg = "TEST MESSAGE!"
server.sendmail("username@mycompany.com", "myemail@mycompany.com", msg)
server.quit()

我搜索了很多此类问题并发现了与我自己类似的案例,尝试了所有建议的解决方案,但我仍然遗漏了一些东西。

我的猜测是这与设置正确的路径有关。我尝试在 crontab 语句上方设置路径,例如

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/2 * * * * /home/abc/anuj/TPA/Test_Cron.py

也试过了,

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/2 * * * * /home/abc/anuj/TPA/Test_Cron.py

和,

*/2 * * * *  cd /home/abc/anuj/TPA/ && Test_Cron.py

但没有成功。非常感谢任何帮助。

谢谢!

最佳答案

如果这对我有帮助的话,我遇到了完全相同的情况,但我发现由于我使用不同的 conda 环境来编写我的脚本;我必须通过 shebang #!我用来在脚本中编写脚本的环境的 python 解释器的路径。

这让它起作用了。我还有另一个脚本运行得很好,否则当通过 cron 作业使用“python3”命令调用它时。

我只是猜测某些模块可能没有正确加载,甚至没有写入任何输出就失败了。

获取你的 conda envs 路径

    conda info --envs

将它添加到脚本的顶部,并简单地在 cron 作业中提供路径。

    #!/home/username/anaconda3/envs/AutoBrowsing/bin/python

示例 Cronjob:

    */6 * * * * /home/username/path/to/script.py >> /home/username/scriptlog.txt

关于python - Cron 作业运行成功但没有任何反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48039841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com