2012-04-21 4 views
2

stdoutを表示しないようにstderrを非表示にしようとしていますが、正しい構文を取得できません。パイプメールコマンドでstdoutを隠す

私はrootログインがあるたびに私にメールするには、rootの.profile内の1つのライナーを持っている:

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

問題は、メールが送信された後、私は標準出力にこれを取得することです:

[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 /防止-bash-from-done-when-background-command-finished-execut – mihai

答えて

1

(netstatの-antp | grepをESTABLISHED |はgrep -v 127.0.0.1 |メール-s "警告:サーバー上のrootアクセス権" [email protected] &)

+0

sivann、これは私のニーズに応えます!私はnetstat -antp: '(これは" -p "の情報を読み取ることはできませんでした:geteuid()= 1004しかし、rootでなければなりません) 私は-pをノックアウトしました。ありがとう! – you

関連する問題