使用shell指令碼檢視多個服務的埠是否開啟

2021-09-22 21:12:44 字數 1917 閱讀 1898

使用shell指令碼配合nc命令來達到我們的目的.

用shell指令碼實現兩個需求:

1 掃瞄多台伺服器的乙個埠是否開啟

2 掃瞄多台伺服器的多個埠是否開啟

關於nc命令

nc 是netcat的縮寫,它是通過使用tcp/udp的網路協議的連線來讀或寫資料,可以直接被第三方程式或指令碼直接呼叫.也是一款功能非常強大的網路除錯工具,它可以建立所有你所需要的連線方式.

nc 工具主要有三種功能模式:

連線模式

監聽模式

通道模式

使用格式:

]# nc [-options][hostname or ip] [portnumber]
應用1

掃瞄多台伺服器的乙個埠是否開啟

1)可以將需要查詢的所有伺服器位址全部寫到乙個server_list.txt檔案裡.每個位址單獨一行

# cat server-list.txt

192.168.1.2

192.168.1.3

192.168.1.4

192.168.1.5

192.168.1.6

192.168.1.7

2)用for迴圈依次掃瞄server_list.txt裡對應伺服器的埠是否開啟.

]#vim port_scan.sh

#!/bin/bash

for server in `more server-list.txt`

do#echo $i

nc -zvw3 $server 22

done

給指令碼賦予執行許可權

]# chmod +x port_scan.sh
3)執行指令碼來自動檢查多個伺服器的22埠是否已經開啟

]# bash port_scan.sh
應用2

掃瞄多台伺服器的多個埠是否已經開啟

1)可以將需要查詢的所有伺服器位址全部寫到乙個server_list.txt檔案裡.每個位址單獨一行

2)將需要查詢的伺服器端口全部寫到乙個port_list.txt檔案裡,每個埠單獨一行

]#cat port-list.txt

22 80

3306

3)用for迴圈依次掃瞄server_list.txt裡對應伺服器port_list.txt所列埠是否開啟.

注意,這裡用兩個for迴圈,第一層是伺服器列表,第二層是埠列表

]#vim multiple_port_scan.sh

#!/bin/bash

for server in `more server_list.txt`

do for port in `more port_list.txt`

do #echo $server

nc -zvw3 $server $port

echo ""

done

done

給指令碼賦予執行許可權

]#chmod +x multiple_port_scan.sh
4)執行指令碼來自動檢查多個伺服器的多個埠是否已經開啟

]# bash  multiple_port_scan.sh

shell多個指令碼同時執行

1 編寫多程序實驗指令碼 demo.sh bin bash sub1.log sub2.log sub3.log function sub1 doecho date t sub1.log 注意date 和 號之間有空格。如 date m d date取 月 日 的命令列。sleep 1 done f...

shell指令碼的使用

說明 chmod a x test.sh 使指令碼具有執行許可權 a 20 b 10 1.算術運算子列表 運算子 說明 舉例 加法 expr a b 結果為 30。減法 expr a b 結果為 10。乘法 expr a b 結果為 200。乘法使用不同 除法 expr a b 結果為 2。取餘 e...

Shell指令碼常見使用

shell指令碼常見使用 echo 命令用於向視窗輸出文字 定義變數 your name rrr 變數名和等號之間不能有空格 使用乙個定義過的變數,要在變數名前面加美元符號 如 echo 加花括號是為了幫助直譯器識別變數的邊界 刪除變數 unset variable name 字串 雙引號的優點 雙...