簡體   English   中英

如何正確監控VPS Linux命令

[英]How to properly monitor VPS linux command

我遇到了這個命令

watch -n 30 "netstat -ntu | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n"

它列出了連接到我的服務器的IP,不是嗎? 有人可以在這里分解所有管道命令,並告訴我其他可能用於監視服務器流量的命令嗎?

watch反復運行一系列命令,每50秒使用-n 50因此您可以看到輸出隨時間的變化。

netstat顯示有關網絡連接,接口等的信息。選項-n選擇數字輸出, -t選擇TCP連接, -u選擇UDP。 因此,您將獲得一個活動的TCP和UDP連接表,將其標准化為僅IP地址和數字端口號。

awkcut是僅提取一列的工具。 (或者,Awk本身就是一種簡單的編程語言,因此它確實可以做很多事情。)這可能應該重構為單個Awk腳本;

 awk '{ split($5, n, /:/); print n[1] }'

這將在輸出的第五列中提取冒號之前的內容,即從netstat輸出中不包含尾端口號的IP地址。

(在示例中,美元符號前需加反斜杠,因為watch命令用雙引號引起來。如果要在watch內部運行該命令,請放回反斜杠。)

sort | uniq | sort -n sort | uniq | sort -n是一種常見的習慣用法,用於按出現次數對某些事物進行排序。 sort只是將相同的行彼此相鄰,以便uniq可以正常工作(它需要排序的輸入)。 使用-cuniq顯示將多少行合並成一條,然后我們對該數字進行排序。

因此,總而言之,您將獲得一個IP地址列表,這些IP地址的連接已按升序從主機打開。 (對於此特定用例,降序可能更有意義sort -rn以相反的順序對數字進行排序。)

如果您想學習這些東西,將任務分為兩部分是有意義的-一半是了解netstat和相關的網絡工具,另一半是常規文本處理,以從可能的大量信息中提取人類可讀的信息。計算機可讀數據。 對於前者,可能要看網絡管理手冊。 對於后者,也許可以先看一下GNU coreutils文檔 ,特別着重於文本處理實用程序。

為了獲得娛樂價值,這里是將整個流程重構為大部分Awk的過程。

netstat -ntu |
awk '{ split($5, n, /:/); a[n]++ }
    END { for (ip in a) print a[ip], ip }' |
sort -rn

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM