我正在尝试将标准输出消息发送到 mailx -- Red Hat

我正在尝试将标准输出消息发送到 mailx -- Red Hat

全部,感谢您的帮助...这应该很容易:

我的脚本完美地将其打印到标准输出/终端...它在脚本中很漂亮,但不在下面...???? :

# 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 选项/格式,但出现了一些“快乐大餐”……任何帮助都很棒。

请注意,我无法以任何方式、形状或形式更改红帽服务器...坦率地说,他们不希望我在它上面呼吸...我的工作是围绕它编写脚本!1

答案1

如果您将一些标准输出通过管道传输到 mailx 的标准输入中,它会将其作为电子邮件的内容发送

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

如果您的脚本只是运行并且仅输出该输出,那么您应该能够通过以下命令获得所需的结果:

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

如果这段 bash 只是一个更大脚本的一部分,您可以通过将以上所有行组合成一个大的 echo 来通过电子邮件发送所有这些内容:

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

在脚本中,您还可以通过添加“(”“)”来创建子 shell 并通过管道传输其输出:

(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 ...

相关内容