2013-10-11 59 views
0

我想寫一個shell腳本,它將運行一個命令ssh到多臺機器並將輸出存儲在一個變量中並將其作爲報告發送通過email.Here是我在腳本的了:它會問shell腳本運行命令併發送命令輸出作爲電子郵件中的報告

#!/bin/bash 

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

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

在腳本執行上面的命令後輸入密碼我,然後將打印請求的輸出。我在上面的腳本中遇到的問題是,我無法將命令輸出存儲在變量中,並將其輸出到電子郵件正文中。有人可以讓我知道,如果我失去了一些東西。

輸出會是這個樣子:

[email protected]'s password: (yinst-pw) 
    40  240 3560 
[email protected]'s password: (supplied by yinst-pw) 
    50  300 4450 

提前感謝!

+0

我試過it..it不會爲我工作。 – rond

回答

0

你應該把雙引號$ DcEmitterConn上線8.你可以避開臨時文件:

SUBJECT="DC-Connections" 
EMAIL="[email protected]" 
yinst ssh -H test.out "netstat -a | grep ES | grep 25019 | wc" | /bin/mail -s "$SUBJECT" "$EMAIL" 
+0

這聽起來合乎邏輯,但我仍然收到沒有內容的電子郵件。我猜這個問題出現在我最初爲上述命令輸入密碼的地方。我應該包括什麼步驟來照顧密碼部分? – rond

+0

您可能想要設置[無密碼SSH連接](http://www.debian-administration.org/articles/152) – damienfrancois

+1

輸出是否可能實際發送到stderr?試試在命令前加上2>&1 – damienfrancois