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に設定する必要があるオプションを確認してください。