我目前正在处理一些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文件,它们似乎都运行良好。 但是我只从最初的脚本中收到电子邮件。
答案 0 :(得分:2)
您的记录方法:
* * * * * /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正在执行该操作时发生的情况。