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