Crontabs 不会写入某个位置(权限?)

Crontabs 不会写入某个位置(权限?)

我设置了 crontabs 以下载网页上发布的数据并每 x 秒将其保存在本地:

* * * * * sleep 0; wget -O /home/lab/Documents/watchdog.xml 'IP-address'

这有效!

我实际上想将文件保存在其他地方,所以如果我尝试:

 * * * * * sleep 0; wget -O /var/cache/watchdog.xml 'IP-address'

这是行不通的。

由于更改目标文件的位置解决了问题,我假设这是一个权限问题?如何检查/更改权限crontabs

答案1

用户 crontab(您通过运行编辑crontab -e)以您的用户身份运行 - 因此它们使用您用户的权限。

因此,您需要使该文件以您的用户身份可写;如果文件已经存在,很可能sudo chown "$USER" /var/cache/watchdog.xml会这样做。 (如果没有,sudo touch /var/cache/watchdog.xml将在那里创建一个空文件)。还有其他方法(例如,通过更改组并使其可组写,或使用 ACL);哪个最有意义取决于具体情况。

或者,您可以使用可以以任何用户身份运行的系统 crontab(通过/etc/crontab使用文本编辑器进行编辑来配置,或者如果您的系统有的话,最好在 中创建一个文件)。/etc/cron.d请注意,系统 crontab 添加了一个额外的字段:运行命令的用户。它位于星期字段和命令字段之间。

相关内容