您好,登錄后才能下訂單哦!
一、前言
服務器有的時候會被人搞崩,cpu莫名飆升,為了查看哪些IP訪問過于頻繁,就可以使用netstat、awk等指令進行統計查看。
二、指令
對一些常用的指令總結如下:
1、常用指令
對連接的IP按連接數量進行排序:
Shell
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
查看TCP連接狀態:
Shell
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
1
2
3
4
5
6
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
查看80端口連接數最多的20個IP:
Shell
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
1
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
查找較多time_wait連接:
Shell
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
1
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
查找較多的SYN連接:
Shell
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
1
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
查看當前并發訪問數:
Shell
netstat -an | grep ESTABLISHED | wc -l
1
netstat -an | grep ESTABLISHED | wc -l
查看所有連接請求:
Shell
netstat -tn 2>/dev/null
1
netstat -tn 2>/dev/null
但是只要established的,則grep "ESTABLISHED":
Shell
netstat -tn | grep ESTABLISHED 2>/dev/null
1
netstat -tn | grep ESTABLISHED 2>/dev/null
查看訪問某一ip的所有外部連接IP(數量從多到少):
Shell
netstat -nt | grep 121.41.30.149:80 | awk '{print $5}' | awk -F: '{print ($1>$4?$1:$4)}' | sort | uniq -c | sort -nr | head
1
netstat -nt | grep 121.41.30.149:80 | awk '{print $5}' | awk -F: '{print ($1>$4?$1:$4)}' | sort | uniq -c | sort -nr | head
根據端口查找進程:
Shell
netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1
1
netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1
2、根據nginx的訪問日志判斷
在網站部署的目錄下,會有個wwwlogs文件夾用于存放一些日志文件。我們可以根據其中的access.log文件查看一些訪問記錄。
查看訪問記錄,從1000行開始到3000:
Shell
cat access.log |head -n 3000|tail -n 1000
1
cat access.log |head -n 3000|tail -n 1000
查看訪問記錄,從1000行開始,顯示200行:
Shell
cat access.log |tail -n +1000 |head -n 200
1
cat access.log |tail -n +1000 |head -n 200
根據訪問IP統計UV:
Shell
awk '{print $1}' access.log|sort | uniq -c |wc -l
1
awk '{print $1}' access.log|sort | uniq -c |wc -l
統計訪問URL統計PV:
Shell
awk '{print $7}' access.log|wc -l
1
awk '{print $7}' access.log|wc -l
查詢訪問最頻繁的URL:
Shell
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
1
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
查詢訪問最頻繁的IP:
Shell
awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more
1
awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more
通過日志查看含有send的url,統計ip地址的總連接數:
Shell
cat access.log | grep "send" | awk '{print $1}' | sort | uniq -c | sort -nr
1
cat access.log | grep "send" | awk '{print $1}' | sort | uniq -c | sort -nr
通過日志查看當天指定ip訪問次數過的url和訪問次數:
Shell
cat access.log | grep "222.132.90.94" | awk '{print $7}' | sort | uniq -c | sort -nr
1
cat access.log | grep "222.132.90.94" | awk '{print $7}' | sort | uniq -c | sort -nr
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。