2017-11-28 10 views
0

現在の時刻に日付とファイル名を更新する方法:これで私は新しいシェルで、この順序使用して、毎日ログイン作ることができるstdbuf起動しようとしています

stdbuf -i0 -o0 -e0 /.../my_dir/watchdog_foo >> /.../my_dir/log_foo_`date '+%F'` & 

を、私はしたいです持っている:ログWAかどうかを確認しようとして

stdbuf -i0 -o0 -e0 /.../my_dir/watchdog_foo >> /.../my_dir/log_foo_`date '+%R'` & 

:テスト用

log_foo_2017-11-28 
log_foo_2017-11-29 
... 

を、私は、この他の順序を立ち上げました毎分作成されたが、それは起こらなかった。

log_foo_18:05 
log_foo_18:06 
... 

どのように私は私の目的を達成するためにこのコマンドを変更できます。私は飛び乗ったwhileasログが同じファイルにすべてのこの時間を書いていましたか?

答えて

0

このコマンドを起動すると、シェルによってdate +%Rが現在の時刻に展開されます。その後、再度更新されないため、ログは同じファイルにリダイレクトされます。あなたが望む動作を得るには、毎日あなたのスクリプトを再起動する必要があります(更新された日付を得るために)。 cronのようなツールを使用して、毎晩深夜にスクリプトを実行して、前のプロセスを終了し、新しい日付で再実行することができます。

logrotateのようなツールを活用することもできます。

関連する問題