crontab -e 正在运行我的 python 脚本,但它将脚本的结果保存在我的主目录中

crontab -e 正在运行我的 python 脚本,但它将脚本的结果保存在我的主目录中

我有一个 python 脚本,它从一些 XML 文件中获取数据并将它们显示在网站上。该脚本每次运行时都会覆盖index.html 文件,并用存储在某些变量中的数据替换HTML 模板中的某些文本。该脚本运行良好。

我将命令放入 crontab 中每小时运行一次,并且它有效。但它将新更新的 index.html 文件保存到主目录,但我希望将其保存到 /var/www/html/ 。 python 脚本从同一位置运行。

有没有办法让 crontab 运行脚本并将脚本生成的 index.html 文件保存到正确的位置? (/var/www/html)

这是我在 crontab 中放入的命令:

0 * * * * python /var/www/html/boinc.py

谢谢

答案1

您必须始终注意 的cron特征。许多人认为仅仅因为它是他们的用户的crontab,它cron也继承了他们的用户环境从交互式 shell 中。但这不是它的工作原理。

如果你曾经好奇的关于用于运行作业的环境cron,请在您的 中创建这个简单的作业crontab,并cron会告诉您它的环境是什么:

* * * * * /usr/bin/printenv > /home/me/mycronenv.txt 2>&1

一旦得到答案,您就可以通过crontab再次编辑来停止该作业。 :)

答案2

脚本的位置与其执行无关。运行作业时cron,它将当前目录设置为用户的主目录。

您需要自己设置工作目录,或者修改脚本以写入正确的位置。

相关内容