我目前正在编写一些 Python 脚本,这些脚本涉及使用我从网络或 API 抓取的信息向收件人发送电子邮件。
第一个脚本 magic_sea.py 在某些位置抓取 magicseaweed 的波浪高度。第二个使用 API 来获取天气数据。
当我输入命令时,两个脚本都按预期运行,一秒钟后 我收到了预期的电子邮件。
python3 <script.py>
但是当我像这样将它们放入 crontab 时,只有第一个运行
* * * * * /usr/bin/python3.5 /path/to/script.py >> crontab_log.txt
* * * * * /usr/bin/python3.5 /path/to/second_script.py >> crontab_log.txt
我正在使用 shebang #!/usr/bin/python3.5
在两个脚本中
查看 crontab_log.txt 文件,它们似乎都运行良好。 但我只收到来自第一个脚本的电子邮件。
最佳答案
您的记录方法:
* * * * * /usr/bin/python3.5 /path/to/script.py >> crontab_log.txt
* * * * * /usr/bin/python3.5 /path/to/second_script.py >> crontab_log.txt
仅将标准输出发送到日志文件,而不发送错误。您可以通过使用 2>&1
将 stderr 发送到 stdout 来解决此问题,如下所示:
* * * * * /usr/bin/python3.5 /path/to/script.py >> crontab_log.txt 2>&1
* * * * * /usr/bin/python3.5 /path/to/second_script.py >> crontab_log.txt 2>&1
这应该允许您识别并纠正任何错误。
如果您仍然没有看到您需要的内容,请通过脚本 2 添加日志记录,以查看 cron 执行该脚本时发生的情况。
关于python - 努力用 crontab 运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51312017/