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.sh
。mail
私はあなたが意味するものではないと思います。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] << ""