Cron 作业调用 bash 脚本和 python 脚本

发布于 2024-11-04 19:25:04 字数 673 浏览 2 评论 0原文

好的,我有一个 bash 脚本,它只是下载一个网页,然后我使用 python 从下载的页面中提取一些数据。 所以我的 bash 脚本是这样的

#!/bin/bash
html_file="web_page.html"
wget -O /home/michael/Documents/CS288/homework7/web_page.html http://markets.usatoday.com/custom/usatoday-com/html-mktscreener.asp?exchange=13\&screen=1
python hw_7_2.py $html_file

,当我从命令行执行这个 bash 脚本时,它运行良好,wget 运行,然后我的 python 脚本执行,但是当我将其设置为 cron 作业时,wget 将运行但 python 脚本永远不会执行。 我还没有真正设置 cron 作业,所以我认为这可能是问题所在。这基本上就是我的 crontab 文件的样子

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 * * * * * michael /home/michael/Documents/CS288/homework7/usatoday_runner.sh

Okay so I have a bash script that simply downloads a web page, and then I use python to pulls some data out of the downloaded page.
So my bash script is along the lines of

#!/bin/bash
html_file="web_page.html"
wget -O /home/michael/Documents/CS288/homework7/web_page.html http://markets.usatoday.com/custom/usatoday-com/html-mktscreener.asp?exchange=13\&screen=1
python hw_7_2.py $html_file

Now, when I just execute this bash script from the command line it runs fine, the wget runs and then my python script executes, however when I set it up as a cron job the wget will run but the python script never executes.
I have not really set up cron jobs so this I think may be the issue. This is basically what my crontab file looks like

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 * * * * * michael /home/michael/Documents/CS288/homework7/usatoday_runner.sh

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

水水月牙 2024-11-11 19:25:05

尝试将 cron 行替换为:

* * * * * michael /home/michael/Documents/CS288/homework7/usatoday_runner.sh > /tmp/why_is_this_failing.log 2>&1

答案可能在 /tmp/why_is_this_failing.log 中

try to replace the cron line with :

* * * * * michael /home/michael/Documents/CS288/homework7/usatoday_runner.sh > /tmp/why_is_this_failing.log 2>&1

the answer may be in the /tmp/why_is_this_failing.log

美人迟暮 2024-11-11 19:25:05

您的脚本可能没有设置某些环境变量。当 cron 作业运行时,它没有您的正常配置文件信息 - 它不会加载您的 .profile/.bashprofile (更简单的路径、JAVA_HOME 等),一种可能的选择是让脚本源您的 .profile 等。

It's possible that your script doesn't have some environment variables set. When a cron job runs it doesn't have your normal profile information - it doesn't load your .profile/.bashprofile (simpler path, JAVA_HOME, etc) one possible option is to have the script source your .profile etc.

呢古 2024-11-11 19:25:05

由于 $PATH/working 目录出现各种问题,Cron 经常失败。您正在设置 $PATH,但如果您不在正确的目录中,如果您的 bash 脚本和 python 脚本都不起作用,我不会感到惊讶。

尝试使用更多的绝对路径,看看是否可以解决问题。同样,尝试从 / 或其他地方自行运行 cron 命令,看看它是否适合您。

Cron frequently fails because of $PATH/working directory sorts of problems. You're setting the $PATH, but I wouldn't be surprised if neither your bash script nor your python script work if you aren't in the right directory.

Try using more absolute paths and see if that clears things up. Similarly, try running your cron command yourself from / or someplace and see if it works for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文