工作中用到的兩個安全日志腳本
1 公司服務(wù)器每天關(guān)于SSH攻擊的報警很煩人,于是就在撫琴煮酒大哥實(shí)例的基礎(chǔ)上改編成以下腳本,略有不同:
#!/bin/bash
#Prevent SSH attack
SLEEPTIME=30
lastb -n 500| grep -v "^$" | grep -v "btmp" | awk '{print $3}' | sort | uniq -c | grep -v "公司IP" |sort -nr > attack.log
while true
do
while read line
do
IP=`echo $line | awk '{print $2}' `
TIME=`echo $line | awk '{print $1}' `
if [ "$TIME" -gt 10 ];then
grep "$IP" deny.log &> /dev/null
if [ "$?" -ne "0" ]; then
echo "sshd: $IP" >> /etc/hosts.deny
fi
fi
done < attack.log
/bin/sleep $SLEEPTIME
done
2 線上服務(wù)因?yàn)殚_發(fā)的問題有些進(jìn)程會莫名的死掉,需要對這些“弱勢群體”不斷地進(jìn)行監(jiān)控,如果死掉,就立即重啟,于是寫了以下腳本來實(shí)現(xiàn)(以httpd進(jìn)程為例):
#/bin/bash
SLEEPTIME=30
while true
do
id=`ps aux | grep httpd | grep -v "grep" | wc -l`
if [ $id -lt 1 ]; then
echo "---`date +"%F %H:%M:%S"`-----httpd restart." >> /u/scripts/httpd_monitor.log
/etc/init.d/httpd start
fi
sleep $SLEEPTIME
done
PS:以上腳本均需要使用nohup放在后臺執(zhí)行,或者使用計劃任務(wù)也可以!