努力使用 crontab 运行 python 脚本
struggle to run python script with crontab
我目前正在编写一些 python 脚本,这些脚本涉及向收件人发送电子邮件,其中包含我从网上或通过 API 抓取的信息。
第一个脚本,magic_sea.py 在某些位置刮掉 magicseaweed 以获得波浪高度。第二个使用 API 获取天气数据。
两个脚本 运行 当我输入命令时它们应该是这样,一秒钟后
我收到了意向邮件。
python3 <script.py>
但是只有第一个 运行s 当我像这样把它们放在 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 脚本,这些脚本涉及向收件人发送电子邮件,其中包含我从网上或通过 API 抓取的信息。
第一个脚本,magic_sea.py 在某些位置刮掉 magicseaweed 以获得波浪高度。第二个使用 API 获取天气数据。
两个脚本 运行 当我输入命令时它们应该是这样,一秒钟后 我收到了意向邮件。
python3 <script.py>
但是只有第一个 运行s 当我像这样把它们放在 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 执行时发生了什么。