2012-04-21 60 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