1. 程式人生 > >Liunx運維(十一)-系統管理命令

Liunx運維(十一)-系統管理命令

文件目錄:

一、lsof:檢視程序開啟的檔案

二、uptime:顯示系統的執行時間及負載

三、free:檢視系統記憶體資訊

四、iftop:動態顯示網路介面流量資訊

五、vmstat:虛擬記憶體統計

六、mpstat:CPU資訊統計

七、iostat:I/O資訊統計

八、iotop:動態顯示磁碟I/O統計資訊

九、sar:收集系統資訊

十、ntsysv:管理開機服務

十一、setup:系統管理工具

十二、ethtool:檢視網絡卡引數

十三、mii-tool:管理網路介面的狀態

十四、dmidecode:查詢系統硬體資訊

十五、ispci:顯示所有PCI裝置

十六、ipcs:顯示程序間同資訊設施的狀態

十七、ipcrm:清除ipc相關資訊

十八、rpm:RPM包管理器

十九、yum:自動化RPM包管理工具

---------------------------------------分割線:正文--------------------------------------------------------

一、lsof:檢視程序開啟的檔案

命令詳解:

lsof=list open files,列舉系統中已經被開啟的檔案,根據檔案可以找到對應的程序,也可以根據程序找到開啟的檔案

1、顯示使用檔案的程序

lsof /var/log/messages #顯示使用檔案的程序

 COMMAND:命令,即程序名

PID:程序號

USER:程序的所有者 

FD:檔案描述符,0-標準輸出,1-標準輸入,2-標準錯誤,u-檔案被開啟並處於讀取/寫入模式,r-表示該檔案被開啟並處於只讀模式,w-表示該檔案被開啟並處於寫入模式

TYPE:檔案型別,REG(regular)為普通檔案

DEVICE:磁碟的名稱

SIZE/OFF:檔案的大小

NODE:索引節點

NAME:檔名稱

2、指定程序所開啟的檔案

lsof -c rsyslogd #指定程序所開啟的檔案

 3、指定程序號所開啟的檔案

lsof -p 57238 #指定程序號所開啟的檔案

 4、監聽指定的協議、埠和主機等資訊,顯示符合條件的程序資訊。

lsof -i #檢視所有程序

  lsof -i tcp #顯示所有tcp網路連線的程序資訊

 lsof -i :22 #顯示埠為22的程序,常用

 lsof -i tcp:22 #顯示同事滿足TCP和埠22的程序

 5、顯示指定使用者使用的檔案

lsof -u root #使用-u指定使用者使用的檔案

 6、顯示所有socket檔案

lsof -U #使用-U顯示所有socket檔案

 

二、uptime:顯示系統的執行時間及負載

命令詳解:

輸出當前的系統時間、系統開機到現在的執行時間、目前有多少使用者線上和系統平均負載等資訊

1、uptime #顯示系統執行時間及負載資訊

 

三、free:檢視系統記憶體資訊

命令詳解:

free命令用於顯示系統記憶體狀態,具體包括系統實體記憶體、虛擬記憶體、共享記憶體和系統快取等

total-代表記憶體總大小 

used-表示使用的實際記憶體大小

free-剩餘實體記憶體大小(未分配、純剩餘)

share:共享記憶體大小、無需關注

buff/cache:緩衝(緩衝如:cpu到io硬碟,硬碟寫入速度慢 需要先將一部分資料快取到記憶體)和快取(如:io硬碟到cpu,從硬碟讀取 需要先把資料臨時放記憶體裡面 大小

available:實際可使用的記憶體大小;(free+buff/cache只分配,但未使用的記憶體)

1、檢視系統記憶體

free #預設顯示位元組數

 free -m  #以MB為單位顯示記憶體使用情況

 free -h  #根據實際大小自動轉換成KB、GB、MB單位顯示

真實剩餘記憶體=free+buff/cache=489M+317M=806M

換算關係:

total=used + free + buff/cache

available=free + buff/cache(分配但未使用的記憶體)

其中:used已使用記憶體,和buff/cache被佔用的記憶體沒有關係;

 2、定時查詢記憶體:

free -h -s 10 #使用-s選項定時重新整理記憶體的使用情況,單位為秒

 

 四、iftop:動態顯示網路介面流量資訊

命令詳解:

iftop是一款實時流量監控工具,可用於監控TCP/IP連線等,必須用root使用者身份執行。

安裝方法參考:https://www.cnblogs.com/chaichuan/p/4442610.html

1、不接受任務引數啟動iftop命令監控流量

iftop #預設監聽第一塊網絡卡,-i可以指定網絡卡

 介面上顯示的類似刻度尺的刻度範圍,是以標尺的形式顯示流程圖形的長條

中間的<=或>=兩個箭頭,表示的是流量的方向

TX:傳送流量

RX:接收流量

TOTAL:總流量

Cum:執行iftop到目前時間的總流量

peak:流量峰值

rates:分別表示過去2s、10s、40s的平均流量

 2、常用命令組合

iftop -nNBP #-n不進行DNS解析,-N數字形式埠號,-P顯示埠號,-B,以位元組流為單位,預設為bit顯示流量

 

 五、vmstat:虛擬記憶體統計

命令詳解:

vmstat=virtual memory statistics,使用vmstat可以對作業系統的記憶體資訊、程序狀態和CPU活動等進行監視,但只能對系統的整體情況進行統計,無法對某個程序深入分析。

1、顯示虛擬記憶體的使用情況

vmstat #省略-間隔時間與次數引數,僅顯示一次報告後退出

 vmstat 5 #表示每5秒更新一次輸出資訊,迴圈輸出,ctrl+c退出

 vmstat 5 6  #表示每5秒更新一次輸出資訊,統計6次後停止輸出

第1列:procs

r-執行和等待CPU時間片的程序數,b-正在等待資源的程序數

第2列:memory

swpd:表示使用虛擬記憶體的大小

free:表示當前空閒的實體記憶體數量

buff:表示buffers的記憶體數量

cache:表示cache的記憶體數量

第3列:swap

si(swap in):列表示由磁碟調入記憶體,也就是記憶體進入記憶體交換區的數量

so(swap out):列表示由記憶體調入磁碟,也就是記憶體交換區進入記憶體的數量

第4列:I/O項顯示磁碟讀寫狀況

bi列表示從塊裝置讀入資料的總量(即讀磁碟)(塊/s)

bo列表示寫入塊裝置資料的總量(即讀磁碟)(塊/s)

第5列:system顯示採集間隔內發生的中斷數

in列表示在某一時間間隔中觀測到的每秒裝置中斷數

cs列表示每秒產生的上下文切換次數

第6列:CPU項顯示了CPU的使用狀態

us列顯示了使用者程序消耗的CPU時間百分比

sy列顯示了系統(核心)程序消耗的cpu時間百分比

id列顯示了CPU處在空閒狀態的時間百分比

wa列顯示了I/O等待所佔用的CPU時間百分比

st列顯示了虛擬機器佔用的CPU時間的百分比

2、顯示活躍和非活躍記憶體

vmstat -a 2 5 #-a內容增加了inact與active選項,分別代表非活躍與活躍記憶體

 3、檢視記憶體使用的詳細情況

vmstat -s

 4、檢視磁碟的讀/寫

vmstat -d

 5、檢視dev/sda1磁碟的讀寫

vmstat -p /dev/sda1

reads:來自該分割槽的讀的次數

reads sectors:來自於該分割槽的讀扇區的次數

writes:來自於該分割槽的寫的次數

requested writes:來自於該分割槽的寫請求的次數

 

六、mpstat:CPU資訊統計

命令詳解:

mpstat=multiprocessor statistics,一種實時監控工具,輸出cpu的統計資訊,存放在/proc/stat,可查詢所有cpu平均資訊, 也可以查特定的cpu資訊

mpstat的最大特點:可以檢視多核cpu中每個計算核心的統計資料,而vmstat只能檢視系統整體的cpu情況

1、顯示cpu統計資訊

mpstat #省略-間隔時間與次數引數,僅顯示一次報告後退出

mpstat 5 6 #表示每5秒更新一次輸出資訊,統計6次後停止輸出

 第一列:當前時間

CPU:all表示所有cpu,0表示第一個cpu

%user:使用者程序消耗的CPU時間(%)

%nice:nice值為負程序的CPU時間(%)

 %sys 核心時間(%)

%iowait 硬碟IO等待時間(%)

%irq 硬中斷時間(%)

%soft 軟中斷時間(%)

%steal 顯示虛擬機器管理器在服務另一個虛擬處理器時虛擬CPU處在非自願等待下花費時間的百分比

%guest 顯示執行虛擬處理器時CPU花費時間的百分比

%idle CPU除去等待磁碟IO操作外的因為任何原因而空閒的時間閒置時間(%)

2、顯示指定cpu資訊的統計

mpstat -P 0 #顯示第一個cpu的資訊

 

七、iostat:I/O資訊統計

命令詳解:

iostat=I/O statistics,主要功能是對系統磁碟I/O操作進行監控,它的輸出主要是顯示磁碟讀寫操作的統計資訊,同時也會給出CPU的使用情況,同vmstat命令一樣,不能對某個程序進行深入分析,僅對整體情況進行分析

1、iostat #省略-間隔時間與次數引數,僅顯示一次報告後退出

%user:CPU處在使用者模式下的時間百分比
%nice:CPU處在帶NICE值的使用者模式下的時間百分比
%system:CPU處在系統模式下的時間百分比
%iowait:CPU等待輸入輸出完成時間的百分比
%steal:管理程式維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比
%idle:CPU空閒時間百分比

device:磁碟名稱
tps:每秒鐘傳送到的I/O請求數
Blk_read/s:每秒讀取的block數
Blk_wrtn/s:每秒寫入的block數
Blk_read:讀入的block總數
Blk_wrtn:寫入的block總數

2、定時顯示所有資訊

iostat 2 3 #每2秒更新一次資訊,共顯示3次

 3、只顯示磁碟統計資訊

iostat -d

iostat -d -k #-k以KB為單位顯示資料

 4、檢視擴充套件資訊

iostat -d -x -k #-x顯示擴充套件資訊

 rrqm/s: 每秒進行 merge 的讀運算元目。即 rmerge/s

wrqm/s: 每秒進行 merge 的寫運算元目。即 wmerge/s
r/s: 每秒完成的讀 I/O 裝置次數。即 rio/s
w/s: 每秒完成的寫 I/O 裝置次數。即 wio/s
rkB/s: 每秒讀K位元組數。是 rsect/s 的一半,因為每扇區大小為512位元組。
wkB/s: 每秒寫K位元組數。是 wsect/s 的一半。
avgrq-sz: 平均每次裝置I/O操作的資料大小 (扇區)。
avgqu-sz: 平均I/O佇列長度。
rsec/s: 每秒讀扇區數。即 rsect/s
wsec/s: 每秒寫扇區數。即 wsect/s
r_await:每個讀操作平均所需的時間
不僅包括硬碟裝置讀操作的時間,還包括了在kernel佇列中等待的時間。
w_await:每個寫操作平均所需的時間
不僅包括硬碟裝置寫操作的時間,還包括了在kernel佇列中等待的時間。
await: 平均每次裝置I/O操作的等待時間 (毫秒)。
svctm: 平均每次裝置I/O操作的服務時間 (毫秒)。
%util: 一秒中有百分之多少的時間用於 I/O 操作,即被io消耗的cpu百分比

備註:如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁碟可能存在瓶頸。如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠大於 svctm,說明I/O 佇列太長,io響應太慢,則需要進行必要優化。如果avgqu-sz比較大,也表示有當量io在等待。

5、只檢視cpu的資訊

 

 八、iotop:動態顯示磁碟I/O統計資訊

命令詳解:

iptop命令是一款實時監控磁碟I/O的工具,必須以root身份執行,使用iotop命令可以很方便地檢視每個程序使用磁碟I/O的情況

1、不接任何引數啟動iotop命令

 Total DISK READ:總磁碟讀取速度

Total DISK WRITE:總磁碟讀取速度

TID:程序pid值 PRIO:優先順序

USER:使用者

DISK READ:磁碟讀取速度

DISK WRITE:磁碟寫入速度

SWAPIN:從swap分割槽讀取資料佔用的百分比

I/O:I/O佔用的百分比

COMMAND:消耗I/O的程序名

 

九、sar:收集系統資訊

命令詳解:

通過sar命令,可以全面地獲取系統的CPU、執行佇列、磁碟I/O、分頁(交換區)、記憶體、CPU中斷和網路等硬碟資訊

1、sar -u 2 3 #-u顯示系統所有cpu的負載狀態,2,3代表每2秒統計一次,共統計3次

 %user:CPU處在使用者模式下的時間百分比

%nice:CPU處在帶NICE值的使用者模式下的時間百分比
%system:CPU處在系統模式下的時間百分比
%iowait:CPU等待輸入輸出完成時間的百分比
%steal:管理程式維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比
%idle:CPU空閒時間百分比

 2、顯示執行佇列的大小

sar -q 2 3 #使用-q選項顯示執行佇列的大小

 runq-sz 執行佇列的長度(等待執行的程序數,每核的CP不能超過3個)

plist-sz 程序列表中的程序(processes)和執行緒數(threads)的數量
ldavg-1 最後1分鐘的CPU平均負載,即將多核CPU過去一分鐘的負載相加再除以核心數得出的平均值,5分鐘和15分鐘以此類推
ldavg-5 最後5分鐘的CPU平均負載
ldavg-15 最後15分鐘的CPU平均負載

 3、顯示系統記憶體的使用狀況

sar -r 2 3 #使用-r選項顯示系統記憶體在取樣時間內的使用情況

kbmemfree 空閒的實體記憶體大小

kbmemused 使用中的實體記憶體大小
%memused 實體記憶體使用率
kbbuffers 核心中作為緩衝區使用的實體記憶體大小,kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache.
kbcached 快取的檔案大小
kbcommit 保證當前系統正常執行所需要的最小記憶體,即為了確保記憶體不溢位而需要的最少記憶體(實體記憶體+Swap分割槽)
commit 這個值是kbcommit與記憶體總量(實體記憶體+swap分割槽)的一個百分比的值

 4、顯示緩衝區的使用情況

sar -b 2 3 #使用-b顯示緩衝區在取樣時間內的使用情況

tps 磁碟每秒鐘的IO總數,等於iostat中的tps
rtps 每秒鐘從磁碟讀取的IO總數
wtps 每秒鐘從寫入到磁碟的IO總數
bread/s 每秒鐘從磁碟讀取的塊總數
bwrtn/s 每秒鐘此寫入到磁碟的塊總數

5、顯示網路的執行狀態

sar -n DEV 2 3 #使用-n DEV顯示網路介面資訊

#IFACE 本地網絡卡介面的名稱
#rxpck/s 每秒鐘接受的資料包
#txpck/s 每秒鐘傳送的資料庫
#rxKB/S 每秒鐘接受的資料包大小,單位為KB
#txKB/S 每秒鐘傳送的資料包大小,單位為KB
#rxcmp/s 每秒鐘接受的壓縮資料包
#txcmp/s 每秒鐘傳送的壓縮包
#rxmcst/s 每秒鐘接收的多播資料包

sar -n EDEV 2 3 #-n EDEV顯示網路錯誤的統計資料

IFACE 網絡卡名稱
rxerr/s 每秒鐘接收到的損壞的資料包
txerr/s 每秒鐘傳送的資料包錯誤數
coll/s 當傳送資料包時候,每秒鐘發生的衝撞(collisions)數,這個是在半雙工模式下才有
rxdrop/s 當由於緩衝區滿的時候,網絡卡裝置接收端每秒鐘丟掉的網路包的數目
txdrop/s 當由於緩衝區滿的時候,網路裝置傳送端每秒鐘丟掉的網路包的數目
txcarr/s 當傳送資料包的時候,每秒鐘載波錯誤發生的次數
rxfram 在接收資料包的時候,每秒鐘發生的幀對其錯誤的次數
rxfifo 在接收資料包的時候,每秒鐘緩衝區溢位的錯誤發生的次數
txfifo 在發生資料包 的時候,每秒鐘緩衝區溢位的錯誤發生的次數

6、檢視系統磁碟的讀寫效能

sar -d 2 3 #-d顯示系統所有硬碟裝置在取樣時間內的使用情況

DEV 磁碟裝置的名稱,如果不加-p,會顯示dev253-0類似的裝置名稱,因此加上-p顯示的名稱更直接
tps:每秒I/O的傳輸總數
rd_sec/s 每秒讀取的扇區的總數
wr_sec/s 每秒寫入的扇區的總數
avgrq-sz 平均每次次磁碟I/O操作的資料大小(扇區)
avgqu-sz 磁碟請求佇列的平均長度
await 從請求磁碟操作到系統完成處理,每次請求的平均消耗時間,包括請求佇列等待時間,單位是毫秒(1秒等於1000毫秒),等於尋道時間+佇列時間+服務時間
svctm I/O的服務處理時間,即不包括請求佇列中的時間
%util I/O請求佔用的CPU百分比,值越高,說明I/O越慢

 

十、ntsysv:管理開機服務

命令詳解:

提供基於文字介面的選單編輯操作方式,以設定不同執行級別下的系統啟動狀態

 

 十一、setup:系統管理工具

命令詳解:

一個基於文字介面的系統管理工具,集成了使用者認證管理、防火牆管理、網路管理和系統管理。

1、安裝:yum -y install setuptool

2、進行set互動介面

 

 

 十二、ethtool:檢視網絡卡引數

1、查詢網絡卡的基礎引數

ethtool ens33

 

 十三、mii-tool:管理網路介面的狀態

1、檢視網路介面狀態

mii-tool ens33 #不加引數,顯示精簡資訊

 mii-tool -v ens33 #-v顯示詳細資訊

 

 十四、dmidecode:查詢系統硬體資訊

1、檢視伺服器型號

dmidecode -s system-product-name #檢視伺服器型號

 2、dmidecode -s system-serial-number #檢視序列號關鍵字

 3、dmidecode -t memory|more  #檢視記憶體資訊

 

 十五、ispci:顯示所有PCI裝置

1、顯示所有pci裝置

lspci #顯示所有pci裝置

 2、顯示網絡卡裝置資訊

lspci -s 02:01.0 #從以上資訊得到網絡卡裝置編號

 

 十六、ipcs:顯示程序間同資訊設施的狀態

1、顯示程序間的通訊狀態

 

 十七、ipcrm:清除ipc相關資訊

ipcrm -s 0 #清除semid為0的訊號集

 

 十八、rpm:RPM包管理器

命令詳解:

rpm=Red Hat Package Manager(Red Hat管理器),幾乎所有的Liunx發行版本都使用了這種形式的命令管理、安裝、更新和解除安裝軟體

rpm包含五種基礎命令:安裝、解除安裝、升級、查詢和驗證

1、檢視rpm包資訊

rpm -qpi 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #顯示rpm包的版本,建立日期等資訊

 2、 檢視rpm包內容

rpm -qpl 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #顯示rpm包內的檔案

 3、檢視rpm包的依賴

rpm -qpR 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #檢視安裝次rpm包需要依賴的檔案

 4、rpm -ivh 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #-h檢視安裝時的進度

 5、檢視系統是否安裝指定的rpm包

rpm -qa yum #接軟體名

 6、解除安裝rmq包

rpm -e lsof #解除安裝軟體包

 

 十九、yum:自動化RPM包管理工具

命令詳解:

yum=yellow dog updater modified,是多個Liunx發行版的軟體包管理,如Redhat、Centos、Fedora,yum主要用於自動安裝、升級rpm軟體包,它能自動查詢並解決rpm包之前的依賴關係。

1、安裝lsof軟體包

yum -y install lsof

 2、檢查安裝列表

yum list lsof