Shell脚本用于运行命令并将命令输出作为报告发送到电子邮件中

时间:2013-10-11 20:57:19

标签: bash shell email report

我正在尝试编写一个shell脚本,该脚本将运行ssh到多台机器的命令并将输出存储在变量中并通过email将其作为报告发送。这就是我现在在脚本中的内容:< / p>

#!/bin/bash 

DcEmitterConn='yinst ssh -H test.out "netstat -a | grep ES | grep 25019 | wc"'

SUBJECT="DC-Connections"
EMAIL="abc@abc.com"
EMAILMESSAGE="report.out"
echo $DcEmitterConn> $EMAILMESSAGE
#send email using /bin/mail 
/bin/mail -s "$SUBJECT" "$EMAIL"< $EMAILMESSAGE

在脚本中执行上述命令后,它会询问我输入密码,然后打印请求的输出。我在上面的脚本中遇到的问题是我无法将命令输出存储在变量中并将其打印在电子邮件正文中。如果我遗失了某些内容,有人可以告诉我。

输出看起来像这样:

abc@dh1.data.ac2.abc.com's password:  (yinst-pw) 
     40     240    3560
abc@dh2.data.ac2.abc.com's password:  (supplied by yinst-pw)
     50     300    4450

提前致谢!

1 个答案:

答案 0 :(得分:0)

你应该在第8行的$ DcEmitterConn周围加上双引号。你可以避开临时文件:

SUBJECT="DC-Connections"
EMAIL="abc@abc.com"
yinst ssh -H test.out "netstat -a | grep ES | grep 25019 | wc" | /bin/mail -s "$SUBJECT" "$EMAIL"