1. 程式人生 > 實用技巧 >linux系統管理命令

linux系統管理命令

linux系統管理命令

1.lsof:檢視程序開啟的檔案

該命令可以列舉系統中已經被開啟的檔案,可以根據檔案找到對應的程序資訊,同時也可以根據程序資訊找到程序開啟的檔案

引數 說明
-c 程序名 顯示指定的程序名開啟的檔案
-p 程序號 顯示指定程序號開啟的檔案
-u 顯示指定使用者使用的檔案
-i 通過監聽指定的協議,埠和主機,顯示符合條件的程序資訊

範例:

1、顯示使用檔案的程序

[15:37:39 root@centos7 ~]# lsof /var/log/messages
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
rsyslogd 949 root    6w   REG    8,2    90039 134327085 /var/log/messages

說明:如上所示,使用messages檔案的程序為rsyslogd程序。

COMMAND:程序的名稱;PID:程序號;USER:程序的所有者;FD:檔案描述符(0表示標準輸出,1表示標準輸入,2表示標準錯誤,u表示該檔案被開啟並處於/讀取/寫入模式,r表示改檔案被開啟並處於只讀模式,w表示該檔案被開啟並處於寫入模式);TYPE:檔案型別,REG為普通檔案;DEVICE:磁碟的名稱;SIZE/OFF:檔案的大小;NODE:索引節點;NAME:檔名。

2、顯示指定程序開啟的檔案,使用-c選項

[15:37:40 root@centos7 ~]# lsof -c rsyslogd
COMMAND  PID USER   FD      TYPE             DEVICE SIZE/OFF      NODE NAME
rsyslogd 949 root  cwd       DIR                8,2      248        64 /
rsyslogd 949 root  rtd       DIR                8,2      248        64 /
rsyslogd 949 root  txt       REG                8,2   663976  67613869 /usr/sbin/rsyslogd
rsyslogd 949 root  mem       REG               0,20  8388608      7753 /run/log/journal/bb43e178ab39427d9203c2d4e88722b5/system.journal
……

3、顯示指定程序號所開啟的檔案,使用-p選項

[15:39:39 root@centos7 ~]#lsof -p 949
COMMAND  PID USER   FD      TYPE             DEVICE SIZE/OFF      NODE NAME
rsyslogd 949 root  cwd       DIR                8,2      248        64 /
rsyslogd 949 root  rtd       DIR                8,2      248        64 /
rsyslogd 949 root  txt       REG                8,2   663976  67613869 /usr/sbin/rsyslogd
rsyslogd 949 root  mem       REG               0,20  8388608      7753 /run/log/journal/bb43e178ab39427d9203c2d4e88722b5/system.journal
……

4、顯示指定使用者使用的檔案,使用-u選項

[15:41:06 root@centos7 ~]#lsof -u root | more 10
COMMAND     PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1 root  cwd       DIR                8,2       248         64 /
systemd       1 root  rtd       DIR                8,2       248         64 /
systemd       1 root  txt       REG                8,2   1628608   67521629 /usr/lib/systemd/systemd
systemd       1 root  mem       REG                8,2     20064   67172959 /usr/lib64/libuuid.so.1.
3.0
……

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

lsof -i [46] [protocol][@hostname][:service|port]

說明:

46:4代表IPv4,6代表IPv6。

protocol:表示傳輸協議,可以是TCP或者UDP。

hostname:表示主機名或者IP地址。

service:程序的服務名,如NFS,SSH等。

port:表示埠號,如HTTP服務預設的埠號為80,SSH服務預設的埠號為22。

[15:40:58 root@centos7 ~]# lsof -i :22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd     948 root    3u  IPv4  19250      0t0  TCP *:ssh (LISTEN)
sshd     948 root    4u  IPv6  19259      0t0  TCP *:ssh (LISTEN)
sshd    5603 root    3u  IPv4  88209      0t0  TCP centos7.localdomain:ssh->10.0.0.1:51585 (ESTABLISHED)

2.uptime:顯示系統的執行時間及負載

該命令可以輸出系統的當前時間,系統從開機到現在的執行時間,當前有多少使用者線上和系統平均負載等資訊。

範例:

顯示系統的執行時間和平均負載等資訊

[15:43:56 root@centos7 ~]#uptime
 15:44:09 up 20:37,  2 users,  load average: 0.06, 0.03, 0.05
   系統時間   執行時長  當前登入使用者數    平均負載  

3.free:檢視系統記憶體資訊

該命令可以顯示系統記憶體資訊,包括實體記憶體,虛擬記憶體,共享記憶體和系統快取等。

引數	說明
-m(常用)	以MB為單位顯示記憶體的使用情況
-h(常用)	以人類可讀的形式顯示記憶體的使用情況
-s(常用)	根據指定的間隔秒數持續顯示記憶體的使用情況

1、檢視系統記憶體

[15:44:09 root@centos7 ~]#free -m   # 以MB為單位顯示記憶體的使用情況
              total        used        free      shared  buff/cache   available
Mem:           1980         197        1268           9         513        1604
Swap:          4095           0        4095
[15:47:13 root@centos7 ~]#free -h   # 使用-h根據實際大小自動轉換為MB,KB單位
              total        used        free      shared  buff/cache   available
Mem:           1.9G        197M        1.2G        9.6M        513M        1.6G
Swap:          4.0G          0B        4.0G

說明:上面所示,系統真正的可用記憶體為537M,buffers表示寫入資料緩衝區,cache表示讀取資料快取區。

2、定時查詢記憶體

[15:47:21 root@centos7 ~]# free -h -s 10   #每十秒查詢一次
              total        used        free      shared  buff/cache   available
Mem:           1.9G        197M        1.2G        9.6M        513M        1.6G
Swap:          4.0G          0B        4.0G

              total        used        free      shared  buff/cache   available
Mem:           1.9G        197M        1.2G        9.6M        513M        1.6G
Swap:          4.0G          0B        4.0G

4.iftop:動態顯示網路介面流量資訊

該命令可用於監控TCP/IP連線,需要以root使用者執行,該命令在最小安裝包中不存在,需要額外安裝。

#安裝iftop
[15:48:55 root@centos7 ~]#yum install iftop -y
引數 說明
-i(常用) 指定監控的網路埠
-n(常用) 不進行DNS解析
-N(常用) 不將埠號解析成服務名
-B(常用) 以位元組為單位顯示流量
-P(常用) 顯示埠號

常用命令組合:iftop -nNBP

TX:傳送的流量;RX:接收的流量;TOTAL:總流量;Cum:執行iftop到目前為止的總流量;peak:流量峰值;rates:過去2s、10s、40s的平均流量。

命令說明:

-n:不進行DNS解析,顯示IP數字地址。

N:顯示數字形式的埠號

B:以位元組形式為單位

P:顯示埠號

5.vmstat:虛擬記憶體統計

該命令可以對作業系統的記憶體資訊,程序狀態,CPU活動等進行監視,但是隻能對系統的整體情況進行統計,無法對某個具體程序進行分析。

vmstat 【option】 【delay [count]】

常用引數為s,表示顯示記憶體相關統計資訊及所有的系統活動數量。

範例:

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

[15:51:53 root@centos7 ~]#vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1299336   2080 523720    0    0     2     3   17   26  0  0 100  0  0

procs 顯示程序相關資訊:

r :表示執行佇列中的程序數,如果長期大於伺服器cpu的個數,則說明cpu不夠用了;

b :表示等待資源的程序數(阻塞的程序數),比如等待I/O, 記憶體等,這列的值如果長時間大於1,則需要關注一下了;

memory 記憶體相關資訊:

swpd :虛擬記憶體已使用的大小,如果大於0,表示你的機器實體記憶體不足了 ;

free :空閒實體記憶體量(不含buffer和cache);

buf:記憶體中的buffers使用量;

cache :記憶體中的cache使用量;

swap 記憶體交換情況:

si :每秒從磁碟讀入虛擬記憶體的大小,如果這個值大於0,表示實體記憶體不夠用或者記憶體洩露了;

so :每秒虛擬記憶體寫入磁碟的大小,如果這個值大於0,同上;

io 磁碟使用情況:

bi :從塊裝置讀取資料的總量(讀磁碟);

bo: 從塊裝置寫入資料的總量(寫磁碟);

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

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

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

CPU 顯示cpu的使用狀態:

us :使用者程序 cpu消耗時間的百分比;

sy :核心(系統)程序cpu消耗時間百分比;

id :表示cpu處於空閒狀態的時間百分比;

wa :表示I/O等待時間百分比;

st :虛擬機器管理程式佔用時間百分比(一般都為0,不用關注);

注:以上所介紹的各個引數中,經常會關注r列,b列和wa列IO部分的bi以及bo也是要經常參考的物件。如果磁碟io壓力很大時,這兩列的數值會比較高。另外當si, so兩列的數值比較高,並且在不斷變化時,說明記憶體不夠了,記憶體中的資料頻繁交換到交換分割槽中,這往往對系統性能影響極大。

2、檢視記憶體使用的詳細資訊

[15:52:52 root@centos7 ~]#vmstat -s
      2027900 K total memory
       202880 K used memory
       414144 K active memory
       100748 K inactive memory
      1299220 K free memory
         2080 K buffer memory
       523720 K swap cache
      4194300 K total swap
            0 K used swap
……

6.mpstat:CPU資訊統計

該命令可以輸出CPU的一些統計資訊,可以檢視多CPU中每個計算核心的統計資料。

mpstat 【option】 【delay [count]】

-P選項可以用來指定CPU編號,如-P表示第一個CPU。

[15:54:16 root@centos7 ~]#mpstat
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

03:55:06 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
03:55:06 PM  all    0.02    0.00    0.08    0.01    0.00    0.00    0.00    0.00    0.00   99.88

說明:

%usr 表示使用者程序所消耗的CPU時間百分比

%nice 表示修改過優先順序的程序佔用的 CPU 時間百分比

%sys 表示核心(系統)程序消耗的 CPU時間 百分比

%iowait 表示I/O等待佔用的的 CPU 時間百分比

%irq 表示硬中斷佔用的CPU時間百分比

%soft 表示軟中斷的 CPU 時間百分比

%steal 表示虛擬機器強制CPU等待的時間百分比

%guest 表示虛擬機器佔用CPU時間的百分比

%idle 顯示 CPU 的空閒狀態的時間百分比

%intr/s 顯示每秒 CPU 接收的中斷總數

7.iostat:I/O資訊統計

該命令主要對系統的磁碟I/O操作進行監視,輸出主要顯示磁碟讀寫操作的統計資訊,同時也會給出CPU的使用情況,該命令和vmstat一樣,只能對系統整體情況進行分析。

iostat [option] [interval[count]]

常用引數為-c:顯示CPU的使用情況;-d:顯示磁碟的使用情況。

[15:55:06 root@centos7 ~]# iostat 
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.08    0.01    0.00   99.88

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
scd0              0.00         0.01         0.00       1028          0
sda               0.21         3.14         5.00     235734     374692

avg-cpu: 總體cpu使用情況統計資訊,對於多核cpu,這裡為所有cpu的平均值

Device: 各磁碟裝置的IO統計資訊

對於cpu統計資訊一行,我們主要看iowait的值,它指示cpu用於等待io請求完成的時間

Device中各列含義如下:

Device: 以sdX形式顯示的裝置名稱

tps: 每秒程序下發的IO讀、寫請求數量

Blk_read/s: 每秒讀扇區數量(一扇區為512bytes)

Blk_wrtn/s: 每秒寫扇區數量

Blk_read: 取樣時間間隔內讀扇區總數量

Blk_wrtn: 取樣時間間隔內寫扇區總數量

8.iotop:動態顯示磁碟的I/O統計資訊

該命令可以方便的檢視每個程序使用磁碟I/O的情況,需要使用root使用者執行,最小化系統中沒有安裝該命令,需要使用進行額外安裝。

#安裝iotop
yum install iotop -y

該命令的常用引數為-o:顯示正在使用I/O的程序或者執行緒,預設顯示所有;-p:只顯示指定的PID的資訊。

15:58:15 root@centos7 ~]#iotop

Total DISK READ :	0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:	0.00 B/s | Actual DISK WRITE:       0.00 B/s
   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                             
     1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-~em --deserialize 22
     2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
     4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
     6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
  ……

說明:

Total DISK READ:總的磁碟讀取速度;Total DISK WRITE:總的磁碟寫入速度;TID:程序的Pid值;PRIO:優先順序;USER:使用者;DISK READ:磁碟讀取速度;DISK WRITE:磁碟寫入速度;SWAPIN:從swap分割槽讀取資料佔用的百分比;IO:I/O佔用的百分比;COMMAND:消耗I/O的程序名。

9.sar:收集系統資訊

該命令可以全面的獲取系統的CPU,執行佇列,磁碟I/O,分頁(交換區),記憶體、CPU中斷和網路等效能資料。

sar [option] [interval [count]]

引數 說明
-u(常用) 顯示系統所有CPU在取樣時間內的負載狀態
-d(常用) 顯示系統所有硬碟裝置在取樣時間內的使用狀況
-r(常用) 顯示在取樣時間內系統記憶體的使用狀況
-b(常用) 顯示在取樣時間內緩衝區的使用情況
-q(常用) 顯示執行佇列的大小,它與系統當時的平均負載相同
-n(常用) 顯示網路執行狀況

範例:

1、檢視系統CPU的整體負載情況

[15:58:34 root@centos7 ~]# sar -u 2 3
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

04:00:07 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
04:00:09 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
04:00:11 PM     all      0.00      0.00      0.25      0.00      0.00     99.75
04:00:13 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.08      0.00      0.00     99.92

說明:

%user 表示使用者程序所消耗的CPU時間百分比

%nice 表示修改過優先順序的程序佔用的 CPU 時間百分比

%system 表示核心(系統)程序消耗的 CPU時間 百分比

%iowait 表示I/O等待佔用的的 CPU 時間百分比

%steal 表示虛擬機器強制CPU等待的時間百分比

%idle 顯示 CPU 處於空閒狀態的時間百分比

2、顯示執行佇列的大小

[16:00:13 root@centos7 ~]#sar -q 2 3
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

04:01:57 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
04:01:59 PM         0       133      0.00      0.01      0.05         0
04:02:01 PM         0       133      0.00      0.01      0.05         0
04:02:03 PM         0       133      0.00      0.01      0.05         0
Average:            0       133      0.00      0.01      0.05         0

說明:

runq-sz 表示等待執行的程序數

plist-sz 表示程序列表中程序和執行緒的數量

ldavg-1 表示最後一分鐘的系統平均負載

ldavg-5 表示過去5分鐘的系統平均負載

ldavg-15 表示過去15分鐘的系統平均負載

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

[16:03:39 root@centos7 ~]#sar -r 2 3
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

04:05:03 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
04:05:05 PM   1299356    728544     35.93      2080    442544    277976      4.47    414260    100656         0
04:05:07 PM   1299356    728544     35.93      2080    442544    277976      4.47    414292    100656         0
04:05:09 PM   1299356    728544     35.93      2080    442544    277976      4.47    414292    100656         0
Average:      1299356    728544     35.93      2080    442544    277976      4.47    414281    100656         0

說明:

kbmemfree 表示空閒的實體記憶體量

kbmemused 表示使用中的實體記憶體量

%memused 表示實體記憶體的使用率

kbbuffers 核心中作為緩衝區使用的實體記憶體容量

kbcached 核心中作為快取區使用的實體記憶體容量

kbcommit 應用程式當前使用的記憶體大小

%commit 應用程式當前使用的記憶體大小佔總的記憶體大小的百分比

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

[16:05:09 root@centos7 ~]#sar -b 2 3
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

04:06:01 PM       tps      rtps      wtps   bread/s   bwrtn/s
04:06:03 PM      0.00      0.00      0.00      0.00      0.00
04:06:05 PM      0.00      0.00      0.00      0.00      0.00
04:06:07 PM      1.00      0.00      1.00      0.00      1.50
Average:         0.33      0.00      0.33      0.00      0.50

說明:

tps 表示每秒鐘物理裝置的IO傳輸總量

rtps 表示每秒鐘從物理裝置讀入的數量總量

wtps 表示每秒鐘向物理裝置寫入的資料總量

bread/s 表示每秒鐘從物理裝置讀入的資料量,塊/s

bwrtn/s 表示每秒鐘向物理裝置寫入的資料量,塊/s

5、顯示網路的執行狀態

[16:06:07 root@centos7 ~]#sar -n DEV 2 3
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

04:06:58 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:07:00 PM     ens37      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:00 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:00 PM     ens33      0.50      0.50      0.03      0.08      0.00      0.00      0.00

04:07:00 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:07:02 PM     ens37      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:02 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:02 PM     ens33      1.00      1.00      0.06      0.26      0.00      0.00      0.00

04:07:02 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:07:04 PM     ens37      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:04 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:04 PM     ens33      0.50      0.50      0.03      0.23      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:        ens37      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        ens33      0.66      0.66      0.04      0.19      0.00      0.00      0.00

說明:

IFACE 表示網路介面

rxpck/s 每秒鐘接收的資料包

txpck/s 每秒鐘傳送的資料包

rxkB/s 每秒鐘接收的位元組數

txkB/s 每秒鐘傳送的位元組數

rxcmp/s 每秒鐘接收的壓縮資料包

txcmp/s 每沒中傳送的壓縮資料包

rxmcst/s 每秒鐘接收的多播資料包

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

[16:07:04 root@centos7 ~]#sar -d 2 3
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

04:07:57 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
04:07:59 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:59 PM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

04:07:59 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
04:08:01 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:08:01 PM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

04:08:01 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
04:08:03 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:08:03 PM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:      dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

說明:

DEV 表示磁碟的裝置名稱

tps 表示裝置每秒的傳輸次數

rd_sec/s 表示每秒從裝置中讀取的扇區數

wr_sec/s 表示每秒寫入裝置的扇區數

avgrq-sz 表示平均每次IO操作的資料大小

avgqu-sz 表示平均I/O佇列長度

await 表示平均每次I/O操作的等待時間(毫秒)

svctm 表示每次I/O操作的服務時間(毫秒)

%util 表示每秒用於I/O操作的百分比

10.pidstat:監控系統資源

該命令主要用於監控全部或者指定整合佔用系統資源的情況,如CPU,記憶體,IO等。

常用引數為-u:顯示各個程序的CPU使用統計;-r:顯示各個程序的記憶體使用統計;-d:顯示各個程序的IO使用情況。

[16:08:03 root@centos7 ~]#pidstat -u 5 1 
Linux 3.10.0-1127.el7.x86_64 (centos7.localdomain) 	01/05/2021 	_x86_64_	(2 CPU)

04:09:11 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
04:09:16 PM     0      5654    0.00    0.20    0.00    0.20     1  kworker/1:1

Average:      UID       PID    %usr %system  %guest    %CPU   CPU  Command
Average:        0      5654    0.00    0.20    0.00    0.20     -  kworker/1:1

說明:

PID:程序ID

%usr:程序在使用者空間佔用CPU的百分比

%system:程序在核心空間佔用CPU的百分比

%guest:程序在虛擬機器佔用CPU的百分比

%CPU:程序佔用的CPU的百分比

11.chkconfig:管理開機服務

該命令為linux系統中的系統服務管理工具,可以查詢和更新不同的執行等級下系統服務的啟動狀態。

選項 說明
--list(常用) 顯示不同執行級別下服務的啟動狀態
--add(常用) 新增一個系統服務
--del(常用) 刪除一個系統服務
--level(常用) 指定執行級別

範例:

1、檢視系統的服務狀態

[16:08:03 root@centos7 ~]# chkconfig --list
NetworkManager  0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉
abrt-ccpp       0:關閉  1:關閉  2:關閉  3:啟用  4:關閉  5:啟用  6:關閉
abrtd           0:關閉  1:關閉  2:關閉  3:啟用  4:關閉  5:啟用  6:關閉

關於執行級別的說明:0表示關機;1表示單使用者模式;2表示沒有網路的多使用者模式;3表示完全的多使用者模式;4表示沒有使用的級別;5表示圖形介面多使用者模式;6表示重啟。

2、管理系統服務

[16:08:03 root@centos7 ~]# chkconfig --list sshd  # 顯示sshd不同執行級別下服務的啟動狀態
sshd            0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉
[16:08:03 root@centos7 ~]# chkconfig sshd off  # 關閉2 3 4 5級別下開機自啟動
[16:08:03 root@centos7 ~]# chkconfig --list sshd
sshd            0:關閉  1:關閉  2:關閉  3:關閉  4:關閉  5:關閉  6:關閉
[16:08:03 root@centos7 ~]# chkconfig sshd on  # 開啟2 3 4 5級別下開機自啟動
[16:08:03 root@centos7 ~]# chkconfig --list sshd
sshd            0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉
[16:08:03 root@centos7 ~]# chkconfig sshd --level 5 off  # 關閉sshd服務5級別開機自啟動
[16:08:03 root@centos7 ~]# chkconfig --list sshd
sshd            0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:關閉  6:關閉
[16:08:03 root@centos7 ~]# chkconfig sshd --level 5 on  # 開啟sshd服務5級別開機自啟動
[16:08:03 root@centos7 ~]# chkconfig --list sshd
sshd            0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉

3、瞭解chkconfig的原理

chkconfig是在runlevel級別的/etc/rc.d/rc*.d目錄中將對應服務做一個以S或K開頭的軟連結。

[16:08:03 root@centos7 ~]# ls -l /etc/rc.d/rc3.d/ | grep sysstat  # 執行級別3的目錄rc3.d檢視sysstat
lrwxrwxrwx. 1 root root 17 10月 22 04:18 S01sysstat -> ../init.d/sysstat  # S是開啟
[16:08:03 root@centos7 ~]# chkconfig --list sysstat
sysstat         0:關閉  1:啟用  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉
[16:08:03 root@centos7 ~]# chkconfig sysstat off
[16:08:03 root@centos7 ~]# chkconfig --list sysstat
sysstat         0:關閉  1:啟用  2:關閉  3:關閉  4:關閉  5:關閉  6:關閉
[16:08:03 root@centos7 ~]# ls -l /etc/rc.d/rc3.d/ | grep sysstat
lrwxrwxrwx. 1 root root 17 4月  12 09:27 K99sysstat -> ../init.d/sysstat  # K是關閉

12.rpm:RPM包管理器

幾乎所有的linux發行版本都是使用rpm命令進行管理,安裝,解除安裝和更新軟體。rpm命令包含了安裝,解除安裝,升級,查詢和驗證等功能。

選項 說明
-q(常用) 查詢軟體包
-p(常用) 後接以".rpm"為字尾的軟體包
-i(常用) 如果配合-qp,則表示顯示軟體包的概要資訊;如果是安裝包,則表示安裝
-l(常用) 顯示軟體包中的所有檔案列表
-R(常用) 顯示軟體包的依賴環境
-v(常用) 顯示詳細資訊
-h(常用) 用“#”顯示安裝進度條
-a(常用) 與-q引數搭配使用,用於查詢所有的軟體包
-e(常用) 解除安裝軟體包
-f(常用) 查詢檔案或命令屬於哪個軟體包

13.yum:自動化RPM包管理工具

yum主要用於自動安裝,升級rpm軟體包,它能自動查詢並解決rpm包質檢的依賴關係。

yum命令的常用引數為-y,表示確認操作,下面以安裝httpd軟體包為例,給出常用的yum命令。

命令 說明
yum install httpd 安裝httpd軟體包
yum update httpd 更新httpd軟體包
yum list httpd 列出軟體包
yum search httpd 如果不記得軟體包的確切名稱,可以使用該命令搜尋
yum info httpd 獲取軟體包的資訊,需要在安裝軟體包之前知道它的資訊
yum deplist httpd 檢視軟體包的依賴
yum clean all 清理所有YUM的快取內容
yum history 檢視yum的歷史記錄
yum check-update 檢查是否有可用的更新rpm軟體包
yum list installed 列出所有已安裝的軟體
yum list 列出所有可用軟體

範例:

建立區域網的基於Base的私有yum源

#倉庫伺服器配置(光碟base倉庫)
 
yum -y install httpd		            #實現網路共享
systemctl enable --now  httpd           #啟動
mkdir /var/www/html/centos/8 -pv	    #建一個資料夾
mount /dev/sr0 /mnt/				    #掛光碟到此目錄
systemctl enable --now httpd		    #啟動此包
cp  -a  /mnt/*  /var/www/html/centos/8  #將光碟拷到硬碟上

#yum客戶端配置(校驗是否能用)

vim /etc/yum.repos.d/test.repo			#建立一個測試用的

[BaseOS]								#base倉庫
name=BaseOS
baseurl=http://10.0.0.8/centos/8/BaseOS     #路徑
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosoffcial     #鑰匙
[AppStream]								#appstream倉庫
name=[AppStream]
baseurl=http://10.0.0.8/centos/8/AppStream	#路徑
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosoffcial    #鑰匙