我正在运行 CentOS 6,并在名为 USER1 的用户上使用 crontab -e 设置了以下 crontab
* * * * * /usr/bin/wget -q http://localhost/blah1/parse.php >> /home/USER1/Dropbox/www/blah1/crontab.log 2>&1
*/9 * * * * /usr/bin/wget -q http://localhost/blah2/autocheck.php >> /home/USER1/Dropbox/www/blah2/crontab.log 2>&1
php 文件按计划运行,但每次运行它们都会在我的 /home/USER1/ 文件夹中生成一个新文件,这样每次检查时我都会得到数千个新文件:
parse.php
parse.php.1
...
parse.php.9999
autocheck.php
autocheck.php.1
...
autocheck.php.9999
其中每一个都将包含运行的输出。我专门设置用于接收输出和错误的两个日志文件都是空白的。
我做错了什么以及如何让它输出到我想要的地方?
答案1
手册中对此进行了讨论wget(1)
;
When running Wget without -N, -nc, -r, or -p, downloading the same
file in the same directory will result in the original copy of file
being preserved and the second copy being named file.1.
...
When running Wget with -r or -p, but without -N, -nd, or -nc, re-
downloading a file will result in the new copy simply overwriting
the old.
以下方法可能有效,但会让您随心所欲地检查时间戳以及本地和远程服务器为其时间设置的内容(您到处都有 NTP,对吗?)
wget -q -N http://... >> log
或者如果时间戳是一个问题,那么请查看-O
需要将文件名设置为 clobber 的选项。