我设置了 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 添加了一个额外的字段:运行命令的用户。它位于星期字段和命令字段之间。