2016-11-14 9 views
0

約100台のサーバで電子メール通知を設定しようとしていますが、完全に動作するifスクリプトを使用していますが、sshが各マシンに5分の統計情報を収集するツールがあります。私は1つのIPからのsshの試行を無視するようにスクリプトを修正しようとしています。私は自分の脳を磨いてしまったので、私はその問題に関するすべての可能な質問を見てきたと思う。どんな助けも素晴らしい人たちに感謝します!!!複数のif文を使用したBashスクリプト

現在のスクリプトには問題でのをsshで誰電子メールを送信しません。

#!/bin/sh 
# Change these two lines: 
sender="[email protected]" 
recepient="[email protected]" 

if [ "$PAM_RUSER" != "192.168.1.10" ]; then 
goto done 
next 
if [ "$PAM_TYPE" != "close_session" ]; then 
    host="`hostname`" 
    subject="SSH Login: $PAM_USER from $PAM_RHOST on $host" 
    # Message to send, e.g. the current environment variables. 
    message="`env`" 
    echo "$message" | mail "$sender" -s "$subject" "$recepient" 
fi 
fi 

答えて

2
#!/bin/sh 
# Change these two lines: 
sender="[email protected]" 
recepient="[email protected]" 

if [ "$PAM_RHOST" != "192.168.1.10" -a "$PAM_TYPE" != "close_session" ]; then 
    host="`hostname`" 
    subject="SSH Login: $PAM_USER from $PAM_RHOST on $host" 
    # Message to send, e.g. the current environment variables. 
    message="`env`" 
    echo "$message" | mail "$sender" -s "$subject" "$recepient" 
fi 

このソリューションはPAM_RHOST変数が192.168.1.10に等しい場合ifの本体をスキップする別の条件を使用しています。両方の条件を満たす必要があることを指定するには、-a(および)を使用します。

+0

申し訳ありませんが私はそれを編集します、はい、私はシバンの前に#を持っています。私はスクリプトを変更しましたが、IP 192.168.1.10がログインするたびにメールが届きました。どんなアイデアでも、素早く対応してくれてありがとう! – Dale

+1

@Dale '$ PAM_RHOST'の代わりに' $ PAM_RUSER'と192.168.1.10を比較しています。それは意図的なのでしょうか? –

+0

ありがとうございました!それは今では100%働いています。みんなありがとう!!!!!!!!!!! – Dale

関連する問題