cronによって実行されるstdoutputを使用してファイルを上書きする

cronによって実行されるstdoutputを使用してファイルを上書きする

私のcrontabにこのcronがあります。

00 01  *  *  * /srv/python/proj/acquisizione/acquisizioneAOK.sh >> /home/crontab_logs/acquisizioneAOK.out 2>&1; mailx -s "Cron output: acquisizioneAOK" [email protected] < /home/crontab_logs/acquisizioneAOK.out

stdoutputをファイルに書き込み、ファイルに.outテキストが含まれているEメールを送信します。前の出力からファイルを消去する方法は?最後のクローン実行の標準出力を含む電子メールが必要です。

ありがとう

答え1

スクリプトが実行されるたびにログファイルを上書きするには、>>演算子を演算子に置き換えます>

演算子は>>実行されるたびにファイルに出力を追加します。このアプローチを使用すると、ファイルは拡大し続けます。

演算子は>ファイルが実行されるたびにファイルを「中断」するため、リダイレクトされた出力が書き込まれる前に既存のデータはすべて削除されます。

さらに一歩進んで、スクリプトの出力とエラーストリームをコマンドにmailx直接パイプすることができます。

/srv/python/proj/acquisizione/acquisizioneAOK.sh 2>&1 | mailx -s "Cron output: acquisizioneAOK" [email protected]

答え2

>>へのリダイレクトが追加され、>が上書きされます。過去のデータが保持されていない場合、なぜメールで送信されないのか疑問に思います。

関連情報