web-dev-qa-db-ja.com

名前にタイムスタンプが含まれるファイルにcron出力を送信する

私はLAMPセットアップでこのようなcrontabを持っています:

0 0 * * * /some/path/to/a/file.php > $HOME/cron.log 2>&1

これにより、ファイルの出力がcron.logに書き込まれます。ただし、再度実行すると、以前にファイルにあったものが上書きされます。

どうすればcronをファイル名にタイムスタンプのあるファイルに出力できますか?

ファイル名の例は次のようになります:2010-02-26-000000-cron.log

なんらかのタイムスタンプが付いている限り、私はそのフォーマットを気にしません。

前もって感謝します。

43
Philip Morton

試してください:

0 0 * * * /some/path/to/a/file.php > $HOME/`date +\%Y\%m\%d\%H\%M\%S`-cron.log 2>&1

必要に応じて、日付形式をいじってみてください。必ずエスケープしてください% お気に入り \%、 上記のように。

72
fission

ここで説明 のように、タイムスタンプを使用してすべてを同じファイルに保存することを強くお勧めします。

削除する

2>&1

ログファイルに保存する前に、タイムスタンプスクリプトを介して実行します(上記のリンクで説明)。

14
tony gil

次のようにして、ログファイルに出力を追加することもできます。

0 0 * * * /some/path/to/a/file.php >> $HOME/cron.log 2>&1

スクリプトを次のように変更しました。

`/bin/date +\%Y\%m\%d`.log
0
Ardhy