4. 檢查伺服器是否受到ddos攻擊的指令碼
總結1. 使用nr行號來定位提取ip
[root@ecs-c13b awk]
# ifconfig eth0 |awk -f " " 'nr==2'
192.168.0.192
2. 去除首行[root@ecs-c13b awk]
# route -n
kernel ip routing table
destination gateway genmask flags metric ref use iface
0.0.0.0 192.168.0.1 0.0.0.0 ug 100 0 0 eth0
169.254.169.254 192.168.0.1 255.255.255.255 ugh 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 u 100 0 0 eth0
方法一:
[root@ecs-c13b awk]
# route -n |grep -v ^kernel
destination gateway genmask flags metric ref use iface
0.0.0.0 192.168.0.1 0.0.0.0 ug 100 0 0 eth0
169.254.169.254 192.168.0.1 255.255.255.255 ugh 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 u 100 0 0 eth0
[root@ecs-c13b awk]
#
方法二:
[root@ecs-c13b awk]
# route -n |sed 1d
destination gateway genmask flags metric ref use iface
0.0.0.0 192.168.0.1 0.0.0.0 ug 100 0 0 eth0
169.254.169.254 192.168.0.1 255.255.255.255 ugh 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 u 100 0 0 eth0
[root@ecs-c13b awk]
#
方法三:
[root@ecs-c13b awk]
# route -n |awk 'nr!=1 '
destination gateway genmask flags metric ref use iface
0.0.0.0 192.168.0.1 0.0.0.0 ug 100 0 0 eth0
169.254.169.254 192.168.0.1 255.255.255.255 ugh 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 u 100 0 0 eth0
[root@ecs-c13b awk]
#
3. 其他使用
建立練習檔案:
[root@ mysql-master ~]
# vim data.txt
beth 4.00 0
dan 3.75 0
kathy 4.00 10
mark 5.00 20
mary 5.50 22
susie 4.25 18
1. 列印特定字段[root@ mysql-master ~]
# awk '' data.txt
beth 0
dan 0
kathy 10
mark 20
mary 22
susie 18
在 print 語句中被逗號分割的表示式, 在預設情況下他們將會用乙個空格分割 來輸出. 每一行 print 生成的內容都會以乙個換行符作為結束. 但這些預設行 為都可以自定義。
2. nf, 字段數量
依次列印出每一行的字段數量, 第乙個欄位的值, 最後乙個欄位的值:
[root@ mysql-master ~]
# awk '' data.txt
3 beth 0
3 dan 0
3 kathy 10
3 mark 20
3 mary 22
3 susie 18
3. 計算和列印[root@ mysql-master ~]
# awk '' data.txt
beth 0
dan 0
kathy 40
mark 100
mary 121
susie 76.5
4. 列印行號
awk提供了另乙個內建變數, 叫做 nr, 它會儲存當前已經讀取了多少行的計數. 我們可以使用 nr 和 $0 給 emp.data 的每一行加上行號:
[root@ mysql-master ~]
# awk '' data.txt
1 beth 4.00 0
2 dan 3.75 0
3 kathy 4.00 10
4 mark 5.00 20
5 mary 5.50 22
6 susie 4.25 18
5. 在輸出中新增內容
當然也可以在字段中間或者計算的值中間列印輸出想要的內容:
[root@ mysql-master ~]
# awk '' data.txt
total pay for beth is 0
total pay for dan is 0
total pay for kathy is 40
total pay for mark is 100
total pay for mary is 121
total pay for susie is 76.5
6. 自定義格式輸出
第1列使用15個字元寬度左對齊輸出,最後一列使用15個字元寬度右對齊輸出
[root@ecs-c13b awk]
# awk -f: '' /etc/passwd
username:root /bin/bash
username:bin /sbin/nologin
username:daemon /sbin/nologin
4. 檢查伺服器是否受到ddos攻擊的指令碼[root@ecs-c13b awk]
# netstat -ntu |awk ''|cut -d: -f1 |uniq -c |sort -n
1 100.125.1.41
1 114.181.58.197
1 120.245.114.128
1 45.79.47.198
1 address
1 servers)
總結
awk的內容還遠遠未完,還需要大量的練習。sed,grep,awk,用之前都需要花一些精力把語法搞明白。
後面我會做個思維導圖來梳理下這三個內容,幫助大家記憶。
shell shell指令碼實戰 for迴圈
總結前言 迴圈語句常用於重複執行一條命令或一組命令等,直到達到結束條件後,則終止執行。在shell中常見的迴圈命令有while until for和select等 今天我們來 第乙個迴圈語句,for迴圈。for迴圈介紹 for迴圈語句與while迴圈語句類似,但for迴圈語句主要用於有限次的迴圈場景...
Shell Shell指令碼執行
shell指令碼執行的方法有一下幾種 一.shellname.sh 二source shellname.sh 三chmod x shellname.sh shellname.sh 四sh shellname.sh區別和相同點 他們的相同點是都可以成功執行乙個shell指令碼。而不同點有 第一種方法 ...
Shell shell指令碼中的空格
1.定義變數時,號的兩邊不可以留空格.eg gender femal right gender femal wrong gender femal wrong gender test right 左邊是命令的話 號的右邊有空格是正確的 左邊不能有空格 gender test wrong 等號 左邊必須...