mailxにstdoutメッセージを送信しようとしています - Red Hat

mailxにstdoutメッセージを送信しようとしています - Red Hat

みんな助けてくれてありがとう...これは簡単です。

私のスクリプトはそれをstdout / terminalに完全に印刷します。スクリプトでは美しいですが、以下ではそうではありません...????:

# Print to stdout
echo "------- CAPACITY TEST FAILED -------"
echo -n "  SYSTEM NAME: " ; uname -n
echo -n "  USER DETAIL: " ; whoami
echo "  PARTITION:   $PART "
echo "  USED SPACE:  $USEDSPC "
echo "  THRESHOLD LIMIT OF $THRESH% EXCEEDED"
echo "------------------------------------"

私は多くのmailxオプション/フォーマットを試しましたが、いくつかの「幸せなごちそう」が表示されます...どんな助けでもいいでしょう。

私はRed Hatサーバーを何らかの形で形や形に変更することはできません。そして正直なところ、彼らは私がそれについて呼吸したくありません。私の仕事はRed Hatサーバーに関するスクリプトを書くことです! 1

答え1

いくつかの標準出力をmailxの標準入力にリンクすると、電子メールの内容に送信されます。

echo "test body" | mailx -s test_subject [email protected]

スクリプトを実行してその出力のみを出力する場合は、次のようにして目的の結果を得ることができます。

/path/to/script | mailx -s subject_here [email protected]

このbashが大きなスクリプトの一部である場合は、上記のすべての行を1つの大きなエコーにまとめて、すべて電子メールで送信できます。

echo -e "------- CAPACITY TEST FAILED -------\n  SYSTEM NAME: $(uname -n)\n  USER DETAIL: $(whoami)\n  PARTITION:   $PART \n  USED SPACE:  $USEDSPC \n  THRESHOLD LIMIT OF $THRESH% EXCEEDED\n------------------------------------" | mailx -s subject_here [email protected]

答え2

スクリプトに "("")" を追加してサブシェルを作成し、その出力をパイプすることもできます。

(echo "------- CAPACITY TEST FAILED -------"
 echo -n "  SYSTEM NAME: " ; uname -n
 echo -n "  USER DETAIL: " ; whoami
 echo "  PARTITION:   $PART "
 echo "  USED SPACE:  $USEDSPC "
 echo "  THRESHOLD LIMIT OF $THRESH% EXCEEDED"
 echo "------------------------------------" ) | mailx ...

関連情報