crontab がジョブを実行するたびに一意のログを生成するようにするにはどうすればよいですか?

crontab がジョブを実行するたびに一意のログを生成するようにするにはどうすればよいですか?

crontabジョブはこちら

/usr/local/bin/python2.7 /home/scripts/script.py >> /home/scripts/logs/log.log 2>&1

ジョブが実行されるたびに新しいログを生成するにはどうすればよいでしょうか?

ログ ファイルが生成されるたびに増加するカウンターを追加するのは問題ありません。これを行う方法がわかりません。

そのためには、本当に別の cron ジョブを実行する必要がありますか?

答え1

次のコマンドを使用してdate、一意のファイル名を生成できます。

/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/"`date +\%d\%m\%y_\%H\%M\%S`".log 2>&1

編集:パーセント記号は必ずエスケープしてください\%)。 彼らは持っています特別な意味cron と crontab ではエラーが返されます。

<date_time>.logこうすることで、ジョブが実行されるたびに新しいログ ファイル ( ) が作成されます。

$ date; touch "`date +%d%m%y_%H%M%S`.log"
  Tue Sep 25 04:39:25 CEST 2012
$ ls *log
  250912_043925.log

スクリプトが 1 秒に 1 回以上実行されないと仮定すると (単純な crontab を実行している場合は不可能です)、問題はないはずです。

コメントで示唆されているように、スクリプトが異なるユーザーによって実行される場合は、ログ ファイルの名前にユーザー名を追加できます。

/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/$(echo -n `whoami`_`date +\%d\%m\%y_\%H\%M\%S`).log 2>&1

関連情報