本人只是一枚中職生小白,在管理學校的網站,這些腳本都是我爲了管理這些網站自己寫的,請高手不要見笑,請多指點指點,謝謝。如果沒有在代碼中體現的變量,已經被我定義成了環境變量。
大概過程:請判斷是不是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