linux 系统管理命令整理
10個超實用的CentOS網絡和監控命令
網絡和監控命令類似于這些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看linux服務器ip地址,管理服務器網絡配置,通過 telnet 和ethernet建立與linux之間的網絡鏈接,查看linux的服務器信息等。下面讓我們看看在Linux下的網絡和監控命令的使用。1. hostname
hostname 沒有選項,顯示主機名字
hostname –d 顯示機器所屬域名
hostname –f 顯示完整的主機名和域名
hostname –i 顯示當前機器的ip地址
2. ping
ping 將數據包發向用戶指定地址。當包被接收,目標機器發送返回數據包。ping 主要有兩個作用:
用來確認網絡連接是暢通的。
用來查看連接的速度信息。
如果你 ping www.yahoo.com 它將返回它的ip地址 。你可以通過 ctrl+C 來停止命令。
3. ifconfig
查看用戶網絡配置。它顯示當前網絡設備配置。對于需要接收或者發送數據錯誤查找,這個工具極為好用。
4. iwconfig
iwconfig 工具與 ifconfig 和ethtool類似。是用于無線網卡的 . 你可以用他查看設置基本的Wi-Fi 網絡信息,例如 SSID, channel和encryption.還有其他很多配置你也可以查看和修改,, 包括 接收靈敏度, RTS/CTS, 發送數據包的分片大小,以及無線網卡的重傳機制。
5. nslookup
nslookup 這個命令在 有ip地址時,可以用這個命令來顯示主機名,可以找到給定域名的所有ip地址。而你必須連接到互聯網才能使用這個命令。
例子:nslookup blogger.com。你也可以使用 nslookup 從ip獲得主機名或從主機名獲得ip。
6. traceroute
一個方便的工具。可用來查看數據包在提交到遠程系統或者網站時候所經過的路由器的IP地址、跳數和響應時間。同樣你必須鏈接到互聯網才能使用這個命令。
7. finger
查看用戶信息。顯示用戶的登錄名字、真實名字以及登錄終端的名字和登錄權限。這是unix一個很老的命令,現在已很少使用了。
8. telnet
通過telnet協議連接目標主機,如果telnet連接可以在任一端口上完成即代表著兩臺主機間的連接良好。
telnet hostname port – 使用指定的端口telnet主機名。這通常用來測試主機是否在線或者網絡是否正常。
9. ethtool
ethtool允許你查看和更改網卡的許多設置(不包括Wi-Fi網卡)。你可以管理許多高級設置,包括tx/rx、校驗及網絡喚醒功能。下面是一些你可能感興趣的基本命令:
ethtool -i 顯示一個特定網卡的驅動信息,檢查軟件兼容性時尤其有用
ethtool -p 啟動一個適配器的指定行為,比如讓適配器的LED燈閃爍,以幫助你在多個適配器或接口中標識接口名稱
ethtool -s 顯示網絡統計信息
ethtool speed <10|100|1000> 設置適配器的連接速度,單位是Mbps
10. netstat
發現主機連接最有用最通用的Linux命令。你可以使用”netstat -g”查詢該主機訂閱的所有多播組(網絡)
netstat -nap | grep port 將會顯示使用該端口的應用程序的進程id
netstat -a or netstat –all 將會顯示包括TCP和UDP的所有連接
netstat –tcp or netstat –t 將會顯示TCP連接
netstat –udp or netstat –u 將會顯示UDP連接
netstat -g 將會顯示該主機訂閱的所有多播網絡。
服務器監控命令
想不想知道你的服務器到底在干什么?那么你要知道本文介紹的這些基本命令。一旦你熟悉掌握了這些命令,就為成為專業的 Linux系統管理員打下了基礎。
你可以通過圖形化用戶界面(GUI)程序來獲取這些外殼命令提供的大量信息,具體取決于使用哪一種Linux發行版。比如說,SUSE Linux就有一款出色的、圖形化配置和管理工具YaST,KDE的KDE System Guard同樣很出色。
不過,Linux管理員要明白的一個常理是:只有絕對必要時,才應該在服務器上運行GUI。那是由于,Linux GUI耗用系統資源,而這些資源原本可以更合理地用在其他地方。所以,盡管使用GUI程序很適合對服務器健康狀況做一個基本的檢查,但是如果你想知道到底發生了什么,請關閉GUI,開始從Linux命令外殼使用這些工具。
這還意味著,只要在需要時,你才應該在服務器上開啟GUI;不用的時候,就及時關掉。為了確保性能最佳,Linux服務器應該在運行級別(runlevel)3下運行,這個運行級別完全支持網絡和多個用戶,但是在機器啟動時,又不開啟GUI。如果你果真需要圖形化桌面,總是可以從外殼提示符下運行startx,獲得圖形化桌面。
如果你的服務器啟動后進入到圖形化桌面,就需要更改這種情況。為此,進入到終端窗口,使用su命令切換到root用戶,然后用你常用的編輯器打開/etc/inittab文件。
一旦進入到文件里面,找到initdefault這一行,將id:5:initdefault:改為id:3:initdefault:。
要是沒有/etc/inittab文件,就創建一個,并添加id:3這一行。保存后退出。下次你啟動進入服務器時,它會啟動進入到運行級別3。如果你不想在進行這種更改后重啟,也可以用命令init 3,立即設置服務器的運行級別。
一旦你的服務器在init 3下運行,就可以開始使用下列外殼程序,看看你的服務器里面出現了什么情況。
1. iostat
iostat 命令詳細地顯示了存儲子系統方面的情況。你通常用iostat來監控存儲子系統總體上運行狀況如何,并且在用戶注意到服務器運行緩慢之前提早發現輸入/輸出緩慢的問題。相信我,你應該在用戶發現這些問題之前先發現這些問題!
2. meminfo和free
meminfo為你詳細顯示了內存方面的情況。你通常可以使用另一個程序,比如cat和grep,來訪問meminfo的信息。比如說,cat /proc/meminfo為你詳細顯示了服務器的內存在任何一個時間的使用情況。
如果想快速了解內存的概要信息,可以使用free命令。簡而言之,free為你提供了概要信息;meminfo為你提供了詳細信息。
3. mpstat
mpstat命令可以報告多處理器服務器上每個可用處理器的活動情況。如今,由于多核處理器,這個命令適用于幾乎所有服務器。mpstat還可以報告所有服務器上的處理器的平均活動情況。它讓你能夠按照系統或按照處理器來顯示總的處理器統計信息。這個概要信息可以在潛在的應用程序問題惹毛用戶之前提醒你注意。
4. netstat
netstat與ps一樣,也是Linux管理員每天都使用的Linux工具。它顯示了與網絡有關的大量信息,比如套接口使用情況、路由、接口、協議、網絡統計信息及更多信息。最常用的一些選項如下:
-a 顯示套接口的所有信息
-r 顯示路由信息
-i 顯示網絡接口的統計信息
-s 顯示網絡協議的統計信息
5. nmon
nmon是Nigel’s Monitor的簡稱,這款廣受歡迎的開源工具用來監控Linux系統的性能。nmon可以監控多個子系統的性能信息,比如處理器使用率、內存使用率、運行隊列的信息、磁盤輸入/輸出統計信息、網絡輸入/輸出統計信息、內存分頁活動和進程衡量指標。然后,你可以通過curses“圖形化”界面,查看nmon的實時系統衡量結果。
想運行nmon,你可以從外殼來啟動該工具。一旦啟動,只要輸入單鍵命令,就可以選擇要監控的子系統。比如說,想獲得處理器、內存和磁盤等方面的統計信息,只要分別輸入c、m和d。也可以使用帶-f標志的nmon,將性能統計信息保存到CSV文件中,以便日后分析。
就日常的服務器監控而言,我覺得nmon是我的Linux系統管理工具包中最有用的一個程序。
6. pmap
pmap命令用來報告服務器的進程所使用的內存量。你可以用這個工具來確定服務器上哪些進程被分配了內存、這些進程中有誰在大量使用內存。
7. ps和pstree
ps和pstree這兩個命令是Linux系統管理員的兩個得力助手。它們都能以列表的形式顯示所有目前在運行的進程。ps可以告訴你服務器的程序在使用多少的內存和處理器時間。pstree顯示的信息比較少,但著重表明了哪些進程是其他進程的子進程。掌握了這些信息,你就能發現失控的進程,然后用Linux“不留活口”的kill命令,來終止這些進程。
8. sar
sar程序好比是系統監控工具領域的瑞士軍刀。sar命令實際上由三個程序組成:顯示數據的sar、收集數據的sa1以及保存數據的sa2。一旦安裝完畢,sar就能生成詳細的概要信息,顯示處理器使用率、內存分頁活動、網絡輸入/輸出和傳輸方面的統計信息、進程創建活動以及磁盤設備活動。sar和nmon的一大區別在于,前者更適合長期監控系統,我覺得nmon則比較適合幫助我快速查看服務器的運行狀況。
9. strace
strace 經常被認為是程序員的調試工具,但它的功用不僅僅用來調試。它可以截獲和記錄進程調用系統的情況。因而,它是一個實用的診斷、教學和調試工具。比如說,你可以使用strace來查出某個程序在啟動時實際上使用哪個配置文件。
不過strace的確有一個缺陷。它在檢查某個進程時,該進程的性能會一落千丈。因而,只有在我已經有極其充分的理由認為某個程序引起問題的情況下,才使用strace。
10. tcpdump
tcpdump是一個簡單而可靠的網絡監控實用工具。其基本的協議分析功能讓你能夠粗略查看網絡上的情況。不過想真正深入分析網絡方面的情況,你應該使用Wireshark(下面有介紹)。
11. top
top命令顯示了活動進程方面的情況。默認情況下,它顯示了服務器上運行的最消耗處理器的任務,而且每5秒鐘就刷新一次列表。你還可以按多個標準對進程進行分類,比如PID(進程ID);年限,最新的列在最前面;時間,按累計時間;以及駐留內存使用情況和自啟動以來一直使用處理器的總時間。我覺得它提供了一種快速而簡易的方法,便于查看有沒有進程開始即將失控、帶來問題。
12. uptime
uptime可用來查看某臺服務器運行了多久、有多少個用戶登錄上去。它還顯示了服務器平均負載的概要信息。負載的最佳值是1或更小,這意味著每個進程可以立即訪問處理器、不存在處理器周期丟失的情況。
13. vmstat
大體上來說,你可以使用vmstat來監控虛擬內存方面的情況。Linux不斷使用虛擬內存,以獲得最佳的存儲性能。
如果你的應用程序在占用過多的內存,你就會遇到頻繁被換出內存(page-out)的情況——即程序從內存進入到系統硬驅上的交換空間。你的服務器可能會進入到這個階段:花在管理內存分頁上的時間比花在運行應用程序上的時間還多——這種情況被稱為抖動(thrashing)。當你的電腦抖動時,性能就一落千丈。Vmstat可以顯示平均的數據或實際樣本,可以幫助你發覺大量耗用內存的程序和進程,以免它們導致服務器運行起來如同蝸牛緩行。
14. Wireshark
Wireshark之前名為Ethereal(而且現在仍經常這么叫),是tcpdump的同類工具,不過它更為高級,擁有先進得多的協議分析和報告功能。Wireshark既有GUI界面,又有外殼界面。如果你從事專業級的網絡管理工作,只能使用ethereal。而如果你在使用Wireshark/ethereal,我強烈建議閱讀Chris Sander所著的《實用數據包分析》(Practical Packet Analysis),該書深入淺出地介紹了如何最充分地利用這款實用程序。
本文只是從總體上概述了一些Linux最有價值的系統監控程序。不過,如果你熟練掌握了這些程序,就為成為頂尖的 Linux系統管理員打下了基礎。
總結
以上是生活随笔為你收集整理的linux 系统管理命令整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高动态范围(HDR)
- 下一篇: Ubuntu下安装OpenGL/Glut