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