本人只是一枚中职生小白,在管理学校的网站,这些脚本都是我为了管理这些网站自己写的,请高手不要见笑,请多指点指点,谢谢。如果没有在代码中体现的变量,已经被我定义成了环境变量。

大概过程:请判断是不是ssh登录的,如果是再判断ip,如果不是这三个ip里的,就把它的进程删了,并把最近十次登录的消息,上传到我的ftp。

#!/bin/bash
source ~/.bash_ftp
IP1='192.168.19.88'
IP2='172.18.0.8'
IP3='192.168.19.100'
UPID=$(ps |grep bash |awk '{print $1}')
#IPSSH=$(last |grep pts/ |head -1|awk '{print $3}')
IPSSH=$(who am i |cut -d "(" -f 2- |cut -d ")" -f -1)
IFTTY=$(who am i |awk  '{print $2}' |cut -d '/' -f -1)
LOGNAME="sshlogin_"$(date +%F_%H_%M)
if [ "$IP1" != "$IPSSH" ] &&  [ "$IP2" != "$IPSSH" ] &&  [ "$IP3" != "$IPSSH" ] && [ "$IFTTY" = "pts" ]; then
        echo "异常情况:"$(last |head -1) >/tmp/$LOGNAME
        echo "****最近几次登录情况****" >>/tmp/$LOGNAME
        last |head -10 >>/tmp/$LOGNAME
        FILE="/tmp"
        LOGINDIR="loginlog"
        cd $FILE
        ftp -n $FTPHOST >/dev/null <<END
        user $USERNAME $PASSWORD
        cd $LOGINDIR
        mput $LOGNAME
        quit
END
        rm -rf /tmp/$LOGNAME
        kill -9 $UPID

fi