標準出力とエラー出力をリダイレクトしてファイルを添付し、切り捨てられた結果を電子メールで送信します。

標準出力とエラー出力をリダイレクトしてファイルを添付し、切り捨てられた結果を電子メールで送信します。

次のcrontabがあります。

 0 8 * * * command >> mylog.log 2>&1

これにより、エラーと標準出力が mylog.log に追加されます。

上記に加えて、最新の出力のみをキャプチャして、次の方法commandで私の電子メールで送信できることを願っています。

 mail -s 'test' [email protected]

つまり、すべての出力をログに記録し、新しい出力のみを電子メールで送信します。

Tシャツを読みましたが、これが答えかもしれないという内容が示されていますが、100%確信することはできません。

ベストアンサー1

同僚と確認した結果、解決策は非常に簡単でした。スクリプトをいくつかの部分に分けてください。これらの部分をシェルスクリプトに入れます。

 #!/bin/sh
 # write truncated log to temp.log 
 command > temp.log 2>&1
 # mail contents of truncated log
 mail -s 'test' [email protected] < temp.log
 # append contents of truncated log to your primary log
 cat temp.log >> mylog.log

次に、bashスクリプトをインポートしてcrontabで実行します。

 0 8 * * * bash mysh.sh
 

おすすめ記事