Linux系統運維腳本:掃描主機上多個端?狀態

目? ? ? ? ? ? ? ?錄

一、要求

二、解決方案

(一)解決思路

(二)方案

三、腳本程序實現

(一)腳本代碼和解釋

1、腳本代碼

2、代碼解釋

(二)腳本驗證

1、腳本編輯

2、給予執行權限

3、運行腳本,查看效果

四、擴展


一、要求

????? ?一般我們做linux系統中的應用程序,會用到不同的網絡端口,有時候一個應用會用到很多端口。比如我們常見的流媒體平臺,由于有很多用戶會接入進來,所以,用到的接口成千上萬都有可能。

????????那么,如何查看主機上的所有關心的端口的狀態,以便進一步的進行分析、維護呢?

二、解決方案

(一)解決思路

?????? 通過查詢指定的端口,若端口能夠訪問,或者能夠跟端口建立連接,說明端口是處于開放的狀態,否則,端口是關閉的。

(二)方案

?????? (1)配置需要了解的所有端口;

?????? (2) 遍歷每個端口,查看端口是否可用?

?????? (3)若端口可用,打印端口是開放的;否則,打印出信息:端口是關閉的。

三、腳本程序實現

????????直接把腳本寫出來,分享給大家。

(一)腳本代碼和解釋

1、腳本代碼

????????由于我的環境是centos7.9,編寫如下bash代碼,可以在centos7及其以后版本運行,如下:

#!/bin/bash
HOST=$1
PORTS="22 25 80 3306 8080 26088 26089"
for PORT in $PORTS; do(nc -z -w5 $HOST $PORT) &> /dev/nullif [ $? -eq 0 ]; thenecho "$PORT is opening....."elseecho "$PORT close"fi
done

2、代碼解釋

?????????腳本的功能是檢查指定主機上的多個端口是否開放。 解釋如下:

(1)HOST=$1

????????這行代碼將腳本的第一個參數($1)賦值給變量 HOST。當你運行這個腳本時,你需要提供一個主機名或 IP 地址作為參數。

(2)PORTS="22 25 80 3306 8080 26088 26089"

????????這行代碼定義了一個字符串變量 PORTS,它包含了多個要用來檢查的端口號,這些端口號由空格分隔。

(3)for PORT in $PORTS; do

????????這是一個 for 循環的開始,它會遍歷 PORTS 變量中的每一個端口號,并將每個端口號臨時賦值給變量 PORT。

(4)(nc -z -w5 $HOST $PORT) &> /dev/null

????????這行代碼使用 nc(netcat)命令來嘗試建立到指定主機和端口的連接。若本機沒有安裝netcat,可以使用yum install netcat 在centos中進行安裝。

????????-z 參數告訴 nc 只在掃描端口時使用,而不發送任何數據。

????????-w5 參數設置了等待連接的超時時間為 5 秒。

????????&> /dev/null 將命令的標準輸出和標準錯誤都重定向到 /dev/null,這意味著任何輸出或錯誤信息都不會在終端上顯示。

(5)if [ $? -eq 0 ]; then

????????這行代碼檢查上一個命令(即 nc 命令)的退出狀態。$? 是一個特殊的變量,用于存儲上一個命令的退出狀態。如果 nc 命令成功連接到端口(即端口是開放的),它會以狀態碼 0 退出。

(6)echo "$PORT is opening....."

????????如果 nc 命令成功(即端口開放),這行代碼會輸出該端口的狀態信息。

(7)else

????????這是 if 語句的 else 部分,它會在 nc 命令失敗時執行。

(8)echo "$PORT close"

????????如果 nc 命令失敗(即端口關閉),這行代碼會輸出該端口的狀態信息。

(9)fi

????????這行代碼標志著 if 語句的結束。

(10)done

????????這行代碼標志著 for 循環的結束。

(二)腳本驗證

1、腳本編輯

??????? 使用編輯器,比如vi,把代碼輸入進去;

??????? 保存這個腳本到一個文件中,比check_port.sh

2、給予執行權限

????? chmod +x w check_port.sh

3、運行腳本,查看效果

???? 可以運行這個腳本來檢查進程的運行情況,如下:

[root@localhost home]#
[root@localhost home]# ll
總用量 12
-rwxr-xr-x 1 root root 260 3月   3 13:24 check_port.sh
-rw-r--r-- 1 root root  76 3月   2 23:11 host.txt
-rwxr-xr-x 1 root root 547 3月   2 23:11 select_host.sh
[root@localhost home]#
[root@localhost home]#
[root@localhost home]# sh check_port.sh localhost
22 is opening.....
25 is opening.....
80 close
3306 is opening.....
8080 close
26088 is opening.....
26089 is opening.....
[root@localhost home]#

四、擴展

? ? ? ? 在實際使用中, 可能還要查看其他端口,直接在腳本文件添加即可;若需要查看多個host的情況,可以修改腳本,或者直接在命令中添加多個host即可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/717187.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/717187.shtml
英文地址,請注明出處:http://en.pswp.cn/news/717187.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

構建 ESLint 內存泄露檢測插件入門:提升代碼質量與防范運行時風險

前言 本文目的是介紹如何創建開發一個自定義規則 ESLint 插件。利用其能力,檢測一些代碼中可能存在的內存泄露并及時進行提示,避免潛在的后期影響。 本文實現其中一部分功能–檢測事件監聽器的使用是否存在內存泄露為例來演示基本的 ESLint 自定義規則插件開發的過程。用以…

nginx筆記整理

目錄 一.Nginx基礎介紹 二.nginx安裝配置 三.Nginx配置文件 3.1nginx主配置文件(/etc/nginx/nginx.conf) 3.2默認的網站配置文件(/etc/nginx/conf.d/default.conf) 四.創建新的虛擬主機 五.Nginx日志 5.1nginx日志格式 5.2查看日志 5.3日志緩存(了解) 5.4日志輪轉(/…

COMPOSER安裝使用WIN下升級PHP-V

想用TP6使用phpspreadsheet但是說我PHP版本低,原來是PHP7.0 composer要求至少7.4 直接修改環境變量,把PHP目錄切換到7.4 composer升級比較簡單,在PHP目錄下CMD然后官網的命令執行下即可 下面就可以在TP根目錄下執行命令安裝PHPSPREADSHEET…

sdbusplus:為connection綁定bus

基于前面對于sdbusplus的使用,可以看出,使用sdbusplus時可以通過bus完成method的調用,也可以通過connection完成方法的調用,比如: auto b = bus::new_default_user(); b.new_method_call(...); boost::asio::io_context io; auto conn = make_shared<sdbusplus::asio…

SpringBoot的基本了解

SpringBoot能廣泛應用的原因 1:獨立運行 Spring Boot而且內嵌了各種servlet容器,Tomcat、Jetty等,現在不再需要打成war包部署到容器 中,Spring Boot只要打成一個可執行的jar包就能獨立運行,所有的依賴包都在一個jar包內。 2:簡化配置 spring-boot-starter-web啟動器自動…

Domain-Wall Memory Buffer for Low-Energy NoCs

目錄 Domain-Wall Memory Buffer for Low-Energy NoCs主要工作DWM&#xff1a; Domain-wall memory磁疇壁存儲器磁性納米線陣列設計 開銷分析實驗設計實驗結果分析 參考資料 Domain-Wall Memory Buffer for Low-Energy NoCs 主要工作 我們基于SRAM在NoC中使用的頭尾指針概念&a…

2024年【道路運輸企業主要負責人】考試報名及道路運輸企業主要負責人模擬考試

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 道路運輸企業主要負責人考試報名根據新道路運輸企業主要負責人考試大綱要求&#xff0c;安全生產模擬考試一點通將道路運輸企業主要負責人模擬考試試題進行匯編&#xff0c;組成一套道路運輸企業主要負責人全真模擬考…

字符串匹配——煩人的KMP

相信很多同學看到這篇文章的時候&#xff0c;已經被KMP拿捏了吧&#xff01;KMP算法說難&#xff0c;倒也不是很難&#xff0c;手算都會&#xff0c;說不難吧&#xff0c;短短幾行代碼愣是看不懂&#xff0c;輾轉反側&#xff0c;翻書查閱&#xff0c;視頻講解&#xff0c;最后…

MySQL性能提升之道:深入探討SQL與索引優化實戰技巧

MySQL性能優化&#xff1a; MySQL性能優化是一個涉及多個層面的過程&#xff0c;旨在提高數據庫的響應速度、處理能力和資源利用率。以下是一些關鍵的性能優化策略&#xff1a; 硬件優化&#xff1a; 升級硬件資源&#xff0c;如CPU、內存、SSD硬盤等&#xff0c;以提供更好的…

electron nsis 安裝包 window下任務欄無法正常固定與取消固定 Pin to taskbar

問題 win10系統下&#xff0c;程序任務欄在固定后取消固定&#xff0c;展示的程序內容異常。 排查 1.通過論壇查詢&#xff0c;應該是與app的api setAppUserModelId 相關 https://github.com/electron/electron/issues/3303 2.electron-builder腳本 electron-builder…

三、低代碼平臺-單據配置(單表增刪改查)

一、業務效果圖 主界面 二、配置過程簡介 配置流程&#xff1a;業務表設計 -》業務對象建立-》業務單據配置-》菜單配置。 a、業務表設計 b、業務對象建立 c、業務單據配置 功能路徑&#xff1a;低代碼開發平臺/業務開發配置/單據配置維護 d、菜單配置

linux-tar命令--exclude

命令如下&#xff1a;將workscript 壓縮成workscript_v2.tar.gz&#xff0c;不打包workscript_v2目錄下的logs下的所有文件。 tar -zcf workscript_v2.tar.gz workscript --excludeworkscript_v2/logs workscript_v2.tar.gz--壓縮的文件名&#xff0c;可自定義 workscript--…

GCN原理回顧論文導讀

Cora_dataset description Cora數據集是一個常用的學術文獻用網絡數據集&#xff0c;用于研究學術文獻分類和圖網絡分析等任務。 該數據集由機器學習領域的博士論文摘要組成&#xff0c;共計2708篇論文&#xff0c;涵蓋了7個不同的學科領域。每篇論文都有一個唯一的ID&#xf…

【Linux】linux內核模塊編譯makefile

1、編譯進內核的模塊 如果需要將foo.ko編譯進內核&#xff0c;需要在makefile中進行配置&#xff1a; obj-y foo.o2、編譯可加載的模塊 如果需要將foo.ko編譯成可加載模塊&#xff0c;需要在makefile中進行配置&#xff1a; obj-m foo.oobj-m表示編譯生成可加載模塊。相對…

jQuery詳細介紹

一、引言 在Web開發的歷史長河中&#xff0c;JavaScript一直扮演著至關重要的角色。然而&#xff0c;原生的JavaScript在某些方面存在不足&#xff0c;如瀏覽器兼容性、DOM操作繁瑣等。為了簡化這些問題&#xff0c;jQuery應運而生。jQuery是一個輕量級的、功能豐富的JavaScri…

李沐動手學習深度學習——3.5練習

減少batch_size&#xff08;如減少到1&#xff09;是否會影響讀取性能&#xff1f; 肯定會影響&#xff0c;計算機io性能而言&#xff0c;隨著batch_size增大&#xff0c;讀取越來越快&#xff0c;需要的時間越少。這里會涉及到計算機操作系統的知識點&#xff0c;內存與硬盤之…

AmzTrends x TiDB Serverless:通過云原生改造實現全局成本降低 80%

本文介紹了廈門笛卡爾數據&#xff08;AmzTrends&#xff09;在面臨數據存儲挑戰時&#xff0c;選擇將其數據分析服務遷移到 TiDB Serverless 的思路和實踐。通過全托管的數據庫服務&#xff0c;AmzTrends 實現了全局成本降低 80% 的效果&#xff0c;同時也充分展示了 TiDB Ser…

redis一些概念知識

一、redis是什么 Redis是一種非關系型數據庫&#xff08;NoSQL&#xff09;&#xff0c;它主要以鍵值對存儲數據。與傳統的關系型數據庫相比&#xff0c;Redis更注重內存操作和高性能&#xff0c;常被用作緩存系統或分布式存儲系統。 以簡單的比喻來解釋Redis&#xff0c;可以…

kafka進階(二)

文章目錄 前言一、Ack機制二、ISR集合總結 前言 本篇主要介紹kafka 的 Ack機制 和 ISR集合 一、Ack機制 Kafka提供了三種不同的應答機制&#xff08;ACK&#xff09;&#xff1a; acks0&#xff1a;這是最不可靠的模式。在這種模式下&#xff0c;生產者不會等待來自服務器的…

三、軟考-系統架構設計師筆記-計算機系統基礎知識

計算機系統概述 計算機系統是指用于數據管理的計算機硬件、軟件及網絡組成的系統。 它是按人的要求接收和存儲信息&#xff0c;自動進行數據處理和計算&#xff0c;并輸出結果信息的機器系統。 馮諾依曼體系計算機結構&#xff1a; 1、計算機硬件組成 馮諾依曼計算機結構將…