error.log の内容を送信する Sendmail

error.log の内容を送信する Sendmail

Ubuntusendmail: 、、mailxまたは(有効なものなら何でも)を含む電子メールを送信しようとしていますmail。ログ ファイルの内容をメッセージとして送信しようとしています。ログは にあります/var/log/nginx/error.log

私は、エラー ログに何か変更があったかどうかを確認するために 1 時間ごとに cron を実行し、変更があった場合は、そのエラー ログを電子メールで自分に送信しようとしています。sendmail、mailx、mail を使用した定期的なテストは、私にとっては問題なく機能しています。

これ作品(しかし、私が望んでいるものではありません):
echo "My test email being sent from sendmail" | /usr/sbin/sendmail [email protected]

私は次のことを試しました (どれも機能しませんでした): 、、、、、明らかに 初心者です。
sendmail [email protected] < /var/log/nginx/error.log
/var/log/nginx/error.log | /usr/sbin/sendmail [email protected]
cat /var/log/nginx/error.log | /usr/sbin/sendmail [email protected]
mailx [email protected] < /var/log/nginx/error.log
cat /var/log/nginx/error.log | mailx [email protected]

答え1

Sendmail は、stdin 経由で電子メール ヘッダーと本文を取得することを期待しています。
[電子メール ヘッダー + 空行 + 電子メール本文]
ヘッダーの提供に失敗しました。

以下のスクリプトを試してください:

#!/bin/sh
( 
   echo subject: /var/log/nginx/error.log
   echo  
   cat /var/log/nginx/error.log 
) | sendmail -i [email protected] 

関連情報