溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell 腳本應用《三》監(jiān)控當某個IP并發(fā)連接數

發(fā)布時間:2020-06-14 11:01:39 來源:網絡 閱讀:224 作者:wx5cb5dcd871bbc 欄目:系統運維

根據web日志或者網絡連接數,監(jiān)控當某個IP并發(fā)連接數或者段時間內PV連接到達100及使用防火墻命令封堵對應的IP,監(jiān)控頻率每隔3分鐘;防火墻命令為:iptables -A INPUT -s 192.168.0.7 -j DROP
查看防火墻iptables -L -n

第一種:監(jiān)控日志

#!/bin/sh
while true
do
cat access_log.dms|awk '{print $1}'|sort|uniq -c|sort -nr > a.log
exec< a.log
while read line
do
pv=$(echo $line|awk '{print $1}')
ip=$(echo $line|awk '{print $2}')
if [ $pv -gt 1000 ]&& [ iptables -L -n|grep "$ip"|wc -l -eq 0 ];then
iptables -A INPUT -s $ip -j DROP
fi
done
sleep 180
done

說明:

while讀文件的寫法
1)cat al.log|while read line
do
done

2)exec<a.log
while read line
do
done

3)while read line
do
done<a.log

sort sort將文件的每一行作為一個單位,相互比較,比較原則是從首字符向后,依次按ASCII碼值進行比較,最后將他們按升序輸出。
-n 按數字進行排序
-r 反向排序
-f會將小寫字母都轉換為大寫字母來進行比較,亦即忽略大小寫
uniq 命令 去重
-c 在每一行加上重復的次數
sort -t -k 參數
-t : tables 指定分隔符,默認tab為分隔符
-k: 指定安裝哪一個分割區(qū)域進行排序

[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
#-n 按照數字進行排序
#-t 此例中指定 : 為分隔符
#-k 此例中按照分割的第二區(qū)域進行排序
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
iptables 防火墻
iptables -L -n|grep "$ip"|wc -l 查看相關IP在防火墻里是否有封堵

第二種:監(jiān)控ip連接數

#!/bin/sh
while true
do
netstat -an|grep EST|awk -F '[ :]+' '{print $6}'|sort|uniq -c >a.log
exec< a.log
while read line
do
pv=$(echo $line|awk '{print $1}')
ip=$(echo $line|awk '{print $2}')
if [ $pv -gt 1000 ]&& [ iptables -L -n|grep "$ip"|wc -l -eq 0 ];then
iptables -A INPUT -s $ip -j DROP
fi
done
sleep 180
done

說明:
netstat -an|grep EST|awk -F '[ :]+' '{print $6}'|sort|uniq -c >a.log

netstat命令

-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監(jiān)聽) 的服務狀態(tài)

-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執(zhí)行該netstat命令。

提示:LISTEN和LISTENING的狀態(tài)只有用-a或者-l才能看到

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI