我有一个 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
,它将当前目录设置为用户的主目录。
您需要自己设置工作目录,或者修改脚本以写入正确的位置。