为什么我的 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