为什么 cron 保存在 /root,而实际上应该保存在 /var/www?

为什么 cron 保存在 /root,而实际上应该保存在 /var/www?

为什么我的 cron*/1 * * * * /usr/bin/php /var/www/query/query.php &> /root/querylog.log将 query.php 输出保存在 /root/ 文件夹中?

(该脚本将在其位置保存*.txt)

It should do so at /var/www

文件夹的所有者var/www/query/web-data

在 Debian Squeeze 6.0 上运行

答案1

querylog.log文件保存在/root目录中,因为这正是您指定的保存位置。

如果您想更改其位置,只需编辑路径到您想要的位置,例如/var/www/querylog.log

答案2

发生这种情况是因为 cron 作业以 root 用户身份运行,因此它在 root 用户的 $HOME 执行,即/root

如果您希望 cron 作业在另一个位置运行,以便在那里生成输出,您应该先移到那里,例如编写一个执行所有操作的脚本并从 cron 运行它:

我的查询.bash

cd /var/www
/var/www/query/query.php &> /root/querylog.log

然后 cron 行变成

*/1 * * * * /bin/bash /path/to/script/my_query.bash

相关内容