2016-11-14 66 views
0

所以我试图在大约100台服务器上获得电子邮件通知设置,并且我使用了一个完美工作的if脚本,但是我有一个工具可以在每台机器上ssh进行5分钟收集统计。我正在尝试修改脚本以忽略来自1个IP的任何ssh尝试。我绞尽脑汁,我想我已经仔细研究了这个问题的每一个可能的问题。任何帮助将是惊人的谢谢你们!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 

该解决方案使用不同的条件跳过if的身体,如果PAM_RHOST变量等于192.168.1.10。我们使用-a(和)来指定必须满足这两个条件。

+0

对不起,我会编辑,是的,我有#在前面的shebang。我改变了我的脚本,但每当IP 192.168.1.10登录时,我仍然收到一封电子邮件。任何想法,并非常感谢您的快速响应! – Dale

+1

@Dale您正在比较'$ PAM_RUSER'与192.168.1.10,而不是'$ PAM_RHOST'。那是故意的吗? –

+0

谢谢!这是一个监督,现在它工作100%。谢谢大家!!!!!!!!!!! – Dale