awk 數據過濾工具
awk 選項 ‘BEGIN{} {} END{}’ 文件數組
/正則/
$1~/正則/
$2!~/正則/
$1== >= > < <= !=
&& ||
print $3 //但願打哪一列的數據bash
if(判斷){}else{}
awk while(判斷)服務器
統計文件裏面root出現了多少次
root:test:hello:root
tom:/root:world:root分佈式
日誌【某個IP訪問屢次】,192.168.4.1
test.mp3 某個歌曲被訪問多少次
IP==地理位置【IP能夠轉換成物理位置】,哪一個地區訪問的人比較多ide
NF 列數
1.思考模式: $1=root $2==root $3==root $4==root $NF==root i++
2.工具
$x="root" //精確匹配測試
i=1
while [ $i<= NF ]
do
$i==root && x++
let i++
done
echo $x日誌
awk -F: '{
i=1;
while(i<=NF){
if($i=="root"){x++};
i++
}
} END{print x}' code
#awk -F: '{i=1;while(i<=NF){if($i=="root"){x++};i++}} END{print x}' times.txt
3排序
i=1
while [ $i<= NF ]
do
$i==root && x++
let i++
done
echo $x
awk 數組 【背】
公式 $1 $2 $3
0 /var/log/httpd/access_log
客戶端
#yum -y install httpd-tools
#ab -c 1000 -n 10000 http://192.168.4.254/ //壓力測試軟件,再大就是×××軟件了
DOS ×××【來自統一個IP】 拒絕服務×××2W 【模擬x人×××】,再有人訪問,就會拒絕訪問
DDOS ××× 【分佈式拒絕服務×××】【目前無方法,惟一方法,增長帶寬,服務器】
統計每個人訪問的次數
awk 數組 變量能存多個值
a(ab 11 gg cc)
a[0]=ab
a[1]=tt
a[192.168.4.1]=11
a[192.168.4.2]=22
a[192.168.4.254]=33
for i in a 0 1 3
{
print a[i]
}
ab tt
123 456
123 456
awk '{IP[$1]++}
END{for i in IP{print IP[i]}} //IP是數組【for循環多少次,取決於IP有多少個下角標】
' test.txt
192.168.4.254 17
::1 389
192.168.4.1 20026
sort排序:-k2 按第二列排序 -n按數字排序 -r降序
20026 192.168.4.1
389 ::1
17 192.168.4.254
17 192.168.4.254
389 ::1
20026 192.168.4.1
192.168.4.254 17
::1 389
192.168.4.1 20026
192.168.4.1 20026::1 389192.168.4.254 17