Crontabは、私が指定したログファイルに出力するのではなく、実行されるたびにホームフォルダに新しいファイルを作成します。

Crontabは、私が指定したログファイルに出力するのではなく、実行されるたびにホームフォルダに新しいファイルを作成します。

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

おすすめ記事