2012-04-21 87 views
2

我想隱藏標準輸出& stderr不能顯示,並且無法獲得正確的語法。用管道郵件命令隱藏stdout

我有根的.profile一個襯墊給我發電子郵件每當有root登錄:

netstat -antp | grep ESTABLISHED | grep -v 127.0.0.1 | mail -s "alert: root access on server" [email protected] 2>&1>/dev/null & 

的問題是,在郵件發送後,我得到這個在stdout:

[1]+ Done mail -s "alert: root access on server" [email protected] 2>&1 > /dev/null 

我不希望它在郵件發送時在命令行上顯示任何內容,我錯過了什麼?我也試過,但沒有運氣:

mail -s "alert: root access on server" [email protected] > /dev/null 2>&1 & 

我必須有「&」末或將暫停〜登錄前30秒。

有關如何發送電子郵件,隱藏stdout和stderr,並將其作爲後臺程序運行的任何想法?

謝謝!

+1

看到這個:http://superuser.com/questions/305933/prevent-bash-from-display-done-when-a-background-command-finish -execute – mihai 2012-04-21 20:25:25

回答

1

(netstat的-antp | grep的ESTABLISHED | grep的-v 127.0.0.1 |郵件-s:[email protected] & 「警報在服務器上的root訪問權限」)

+0

sivann,謝謝,這對我的需求是有效的!一個注意:它實際上並沒有抑制所有的消息,因爲我從netstat -antp得到了這個: '(沒有信息可以讀爲「-p」:geteuid()= 1004,但你應該是root) 我剔除了-p,而且事情效果很好。謝謝! – you 2012-04-22 02:06:44