メッセージ本文が空です。よろしくお願いします。

メッセージ本文が空です。よろしくお願いします。

cronjobの一部として、次のコマンドがあります。 cronまたはコマンドラインでコマンドを実行した場合Null message body; hope that's ok

メールの内容は空ですが、ファイルを確認してみると/tmp/sdplogs.out内容が含まれています。

スクリプトは/dproxy/scripts/cleanSDP2xLogs.sh出力をファイルに送信します/tmp/sdplogs.out

私は何が間違っていましたか?どんな助けでも大変感謝します。

$ /dproxy/scripts/cleanSDP2xLogs.sh | mail -s 'SDP2.X Prod LogArchiving Report' [email protected] < /tmp/sdplogs.out
Null message body; hope that's ok

答え1

スクリプトからデータをstdoutに|出力するか、 。&&|

&&を使用すると、mailスクリプトがゼロで終了した場合にのみコマンドが実行されます。

パイプ文字を使用すると、スクリプトはパイプがデータをmail

作成した内容では、スクリプトはファイルにデータを書き込み、mailファイルから読み込みます。平行に-mailスクリプトが何でも書く前に最終的にファイルを読みます。

答え2

/dproxy/scripts/cleanSDP2xLogs.sh | mail -s 'SDP2.X Prod LogArchiving Report' [email protected] < /tmp/sdplogs.out

あなたはコマンドの出力をパイプしていますcleanSDP2xLogs.shmail私はあなたが意味するものではないと思います。cleanSDP2xLogs.shまず、generate /tmp/sdplogs.outを実行してから、/tmp/sdplogs.outをmailコマンドに入力したいようです。

その場合は、次のよう|に置き換えてください;

/dproxy/scripts/cleanSDP2xLogs.sh; mail -s 'SDP2.X Prod LogArchiving Report' [email protected] < /tmp/sdplogs.out

答え3

添付ファイルとして使用する別の方法-a

/dproxy/scripts/cleanSDP2xLogs.sh
mail -s 'SDP2.X Prod LogArchiving Report' -a /tmp/sdplogs.out [email protected] << ""

関連情報