欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網
          最全最豐富的資訊網站

          Linux系統(tǒng)日常運維管理技巧 – w相關的命令

          Linux系統(tǒng)日常運維管理技巧 – w相關的命令。

          1 使用w查看系統(tǒng)負載

          w命令用于顯示已經登陸系統(tǒng)的用戶列表,并顯示用戶正在執(zhí)行的指令,還有系統(tǒng)負載等信息。

          執(zhí)行這個命令可得知目前登入系統(tǒng)的用戶有那些人,以及他們正在執(zhí)行的程序。

          單獨執(zhí)行w命令會顯示所有的用戶,您也可指定用戶名稱,僅顯示某位用戶的相關信息。

          ##一般用法:直接執(zhí)行w命令

          [root@long01 ~]# w

          19:38:50 up 6:30, 2 users, load average: 0.00, 0.01, 0.02

          USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

          root tty1 19:38 10.00s 0.03s 0.03s -bash

          root pts/0 10.1.1.169 19:24 2.00s 0.01s 0.00s w

          w命令所顯示字段的含義

          字段

          19:24:38表示當前系統(tǒng)時間

          up 6:16表示系統(tǒng)以及運行了多少時間

          1 user表示有多少用戶登錄到這個系

          load average分別表示系統(tǒng)最近一分鐘、五分鐘、十五分鐘分鐘的負載

          USER這一列表示在線用戶的用戶名。

          TTY在線用戶所在的終端,遠程終端是pts/0 pts/1等等,本地登錄的用戶顯示為tty1 tty2等等。

          FROM表示用戶登錄的IP,如果是本地登錄則不顯示任何信息,或者顯示的是主機名

          LOGIN@用戶登錄的時間

          IDLE用戶空閑時間。這是個計時器,一旦用戶執(zhí)行任何操作,改計時器就會被重置

          JCPU和終端連接的所有進程占用時間。包括當前正在運行的后臺作業(yè)占用時間

          PCPU當前進程所占用時間

          WHAT當前正在運行進程的命令行

          load average詳解:

          ##第一個數字表示最近1分鐘系統(tǒng)的負載

          ##第二個數字表示最近5分鐘的負載

          ##第三個數字表示最近15分鐘的負載

          ##實際生產環(huán)境的負載情況應該不高于服務器的邏輯CPU數量,

          ##最佳負載應該等于邏輯cpu數量,沒有空閑,也沒有壓力。

          ##查看服務器的邏輯CPU數量,實際數量是processor最大的數字加1

          [root@long01 ~]# cat /proc/cpuinfo | grep "^processor" | sort -drt " " -k3

          processor : 1

          processor : 0

          w命令常用選項

          h選項:不打印頭信息,也就是第一行,只顯示所有在線用戶的信息

          [root@long01 ~]# w -h

          root tty1 19:38 23:44 0.12s 0.12s -bash

          root pts/0 10.1.1.169 19:24 0.00s 0.04s 0.00s w -h

          s選項:短格式顯示簡短的信息:

          [root@long01 ~]# w -s

          20:16:40 up 7:08, 2 users, load average: 0.00, 0.01, 0.02

          USER TTY FROM IDLE WHAT

          root tty1 25:12 -bash

          root pts/0 10.1.1.169 0.00s w -s

          w相關的命令:uptime

          uptime命令的結果就是w命令的第一行

          [root@long01 ~]# uptime

          20:20:41 up 7:12, 2 users, load average: 0.00, 0.01, 0.02

          2 vmstat命令

          vmstat命令的含義為顯示虛擬內存狀態(tài)(“Viryual Memor Statics”),但是它可以報告關于進程、內存、I/O等系統(tǒng)整體運行狀態(tài)。

          用法:

          ##直接使用:顯示一次信息

          [root@long01 ~]# 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 1823464 2076 114716 0 0 5 1 26 24 0 0 100 0 0

          ##持續(xù)顯示直到使用Ctrl+Z暫停或者Ctrl+C終止: vmstat 1

          [root@long01 ~]# vmstat 1 #1代表每1秒顯示一次,可以任意設置

          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 1823464 2076 114716 0 0 5 1 26 24 0 0 100 0 0

          0 0 0 1823464 2076 114716 0 0 0 0 70 56 0 0 100 0 0

          0 0 0 1823464 2076 114716 0 0 0 0 48 41 0 0 100 0 0

          0 0 0 1823448 2076 114716 0 0 0 1 51 50 0 0 100 0 0

          ^C

          ##持續(xù)顯示指定次數:vmstat 1 5 ;表示每1秒顯示1次,顯示5次后自動終止。

          [root@long01 ~]# vmstat 1 5

          procs ———–memory———- —swap– —–io—- -system– ——cpu—–

          r b swpd free buff cache si so bi bo in cs us sy id wa st

          2 0 0 1823588 2076 114716 0 0 5 1 26 24 0 0 100 0 0

          0 0 0 1823572 2076 114716 0 0 0 0 72 56 0 0 100 0 0

          0 0 0 1823572 2076 114716 0 0 0 0 57 53 0 0 100 0 0

          0 0 0 1823572 2076 114716 0 0 0 0 61 54 0 0 100 0 0

          0 0 0 1823572 2076 114716 0 0 0 0 53 45 0 0 100 0 0

          [root@long01 ~]#

          常用選項:

          f選項:顯示啟動后創(chuàng)建的進程總數;

          [root@long01 ~]# vmstat -f

          1202 forks

          S選項:輸出信息的單位,可以設定 k或者K 顯示的是多少kb,m或者M顯示的是多少M。

          [root@long01 ~]# vmstat 1 5 -S M

          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 1780 2 112 0 0 4 0 26 24 0 0 100 0 0

          0 0 0 1780 2 112 0 0 0 0 108 96 0 0 100 0 0

          0 0 0 1780 2 112 0 0 0 0 87 82 0 0 100 0 0

          0 0 0 1780 2 112 0 0 0 4 88 81 0 0 100 0 0

          0 0 0 1780 2 112 0 0 0 1 91 89 0 0 100 0 0

          ##上面free:1700M ;buff:2M ;cache:112M

          字段說明:

          Procs(進程)

          r: 運行隊列中進程數量,這個值也可以判斷是否需要增加CPU。(長期大于1)

          b: 等待IO的進程數量。

          Memory(內存)

          swpd: 使用虛擬內存大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統(tǒng)性能。

          free: 空閑物理內存大小。

          buff: 用作緩沖的內存大小。

          cache: 用作緩存的內存大小,如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會非常小。

          Swap(交換空間)

          si: 每秒從交換區(qū)寫到內存的大小,由磁盤調入內存。

          so: 每秒寫入交換區(qū)的內存大小,由內存調入磁盤。

          (注意:內存夠用的時候,這2個值都是0,如果這2個值長期大于0時,系統(tǒng)性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閑內存(free)很少的或接近于0時,就認為內存不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那么不用擔心,系統(tǒng)性能這時不會受到影響的。)

          IO

          bi: 每秒讀取的塊數

          bo: 每秒寫入的塊數

          (注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。)

          system(系統(tǒng))

          in: 每秒中斷數,包括時鐘中斷。

          cs: 每秒上下文切換數。

          (注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。)

          CPU(以百分比表示)

          us: 用戶進程執(zhí)行時間百分比(user time)

          (注:us的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超50%的使用,那么我們就該考慮優(yōu)化程序算法或者進行加速。)

          sy: 內核系統(tǒng)進程執(zhí)行時間百分比(system time)

          (注:sy的值高時,說明系統(tǒng)內核消耗的CPU資源多,這并不是良性表現,我們應該檢查原因。)

          wa: IO等待時間百分比

          (注:wa的值高時,說明IO等待比較嚴重,這可能由于磁盤大量作隨機訪問造成,也有可能磁盤出現瓶頸(塊操作)。)

          id: 空閑時間百分比

          3 top命令

          ? top命令類似于Windows的任務管理器:可以實時動態(tài)地查看系統(tǒng)的整體運行情況,是一個綜合了多方信息監(jiān)測系統(tǒng)性能和運行信息的實用工具。通過top命令所提供的互動式界面,用熱鍵可以管理。

          使用方法

          [root@long01 ~]# top

          top – 23:44:18 up 3:04, 1 user, load average: 0.00, 0.01, 0.02

          Tasks: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie

          %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

          KiB Mem : 2031912 total, 1822860 free, 92024 used, 117028 buff/cache

          KiB Swap: 2097148 total, 2097148 free, 0 used. 1789820 avail Mem

          PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

          1 root 20 0 125092 3660 2520 S 0.0 0.2 0:00.49 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0

          常用選項:

          d選項:可以調整top信息的刷新時間,默認為3秒

          [root@long01 ~]# top -d 1 #調整top信息刷新時間為1秒。如此top顯示的信息每1秒都會刷新一次。

          u選項:查看某個用戶的進程

          [root@long01 ~]# top -u user2

          top – 23:56:04 up 3:16, 2 users, load average: 0.00, 0.01, 0.02

          Tasks: 96 total, 1 running, 95 sleeping, 0 stopped, 0 zombie

          %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

          KiB Mem : 2031912 total, 1819324 free, 95252 used, 117336 buff/cache

          KiB Swap: 2097148 total, 2097148 free, 0 used. 1786392 avail Mem

          PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1248 user2 20 0 150868 2304 976 S 0.0 0.1 0:00.00 sshd 1249 user2 20 0 115952 2420 1676 S 0.0 0.1 0:00.01 bash

          c選項:顯示完整的進程命令

          [root@long01 ~]# top -c

          top – 12:02:53 up 19:26, 1 user, load average: 0.00, 0.01, 0.04

          Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie

          %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

          KiB Mem : 2031912 total, 1612116 free, 96668 used, 323128 buff/cache

          KiB Swap: 2097148 total, 2097148 free, 0 used. 1752328 avail Mem

          PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

          1 root 20 0 43272 3532 2328 S 0.0 0.2 0:00.70 /usr/lib/systemd/systemd –system –deserialize 13

          b選項:以批處理的模式操作, 顯示全部的進程信息。

          n選項:可以設置循環(huán)顯示次數,刷新指定的次數后停止top命令

          [root@long01 ~]# top -bn 1 #-bn 1的組合常用于腳本中,可以調取一次系統(tǒng)運行信息。用于分析數據,

          top – 12:08:05 up 19:31, 1 user, load average: 0.00, 0.01, 0.05

          Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie

          %Cpu(s): 0.0 us, 3.1 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

          KiB Mem : 2031912 total, 1612312 free, 96316 used, 323284 buff/cache

          KiB Swap: 2097148 total, 2097148 free, 0 used. 1752656 avail Mem

          PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

          1 root 20 0 43272 3532 2328 S 0.0 0.2 0:00.70 systemd

          2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd

          3 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0

          5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

          字段解釋:

          第一行:與w命令的第一行相同,顯示的時系統(tǒng)當前的時間,已運行的時間,系統(tǒng)負載信息。

          第二行:依次是:總任務數量,處于運行狀態(tài)的任務數量,休眠狀態(tài)的任務數量,停止狀態(tài)的任務數量,僵尸進程數量

          第三行:CPU信息,與vmstat顯示的信息類似。最后的st意思是當 hypervisor 服務另一個虛擬處理器的時候,虛擬 CPU 等待實際 CPU 的時間的百分比

          第四行:依次是:總物理內存,空閑的內存,已使用的內存,緩沖區(qū)和緩存使用的內存。

          第五行:依次是:交換分區(qū)總大小,空閑多少,已使用多少,有效的內存。

          第七行:表示下面的進程信息,依次是:

          PID:進程ID

          USER:開啟進程的用戶,

          PR:進程的優(yōu)先級

          NI:NICE值,為負值時表示高優(yōu)先級,正值表示低優(yōu)先級

          VIRT:進程使用的虛擬內存總量,單位為KB

          RES:進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA

          SHR:共享內存大小,單位kb

          S:進程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進程

          %CPU:上次更新到現在的CPU時間占用百分比

          %MEM:進程使用的物理內存百分比

          TIME+:進程使用的CPU時間總計,單位1/100秒

          COMMAND:進程名稱(命令名/命令行)

          top交互命令:

          h:顯示幫助畫面,給出一些簡短的命令總結說明;

          k:終止一個進程; k pid

          i:忽略閑置和僵死進程,這是一個開關式命令;

          q:退出程序;

          r:重新安排一個進程的優(yōu)先級別;

          S:切換到累計模式;

          s:改變兩次刷新之間的延遲時間(單位為s),如果有小數,就換算成ms。輸入0值則系統(tǒng)將不斷刷新,默認值是5s;

          f或者F:從當前顯示中添加或者刪除項目;

          o或者O:改變顯示項目的順序;

          l:切換顯示平均負載和啟動時間信息;

          m:切換顯示內存信息;

          t:切換顯示進程和CPU狀態(tài)信息;

          c:切換顯示命令名稱和完整命令行;

          M:根據駐留內存大小進行排序;

          P:根據CPU使用百分比大小進行排序;

          T:根據時間/累計時間進行排序;

          w:將當前設置寫入~/.toprc文件中。

          4 sar命令

          sar命令是Linux下系統(tǒng)運行狀態(tài)統(tǒng)計工具,它將指定的操作系統(tǒng)狀態(tài)計數器顯示到標準輸出設備。

          sar工具將對系統(tǒng)當前的狀態(tài)進行取樣,然后通過計算數據和比例來表達系統(tǒng)的當前運行狀態(tài)。

          它的特點是可以連續(xù)對系統(tǒng)取樣,獲得大量的取樣數據。

          取樣數據和分析的結果都可以存入文件,使用它時消耗的系統(tǒng)資源很小。

          如果提示找不到該命令,可以執(zhí)行下面的命令進行安裝。

          [root@long01 ~]# yum install -y sysstat

          命令格式:sar (選項) (參數)

          sar會每十分鐘記錄一次系統(tǒng)的狀態(tài),每天會以sa和sar加上每天的日期命名,保存兩個文件:

          一個是/var/log/sa/saxx:xx為當天的日期。還有一個是/var/log/sa/sarxx

          這些文件默認會保留一個月

          [root@www ~]# ls /var/log/sa

          sa01 sa04 sa07 sa10 sa14 sa17 sa20 sa23 sa26 sa29 sar01 sar04 sar07 sar11 sar14 sar17 sar20 sar23 sar26 sar29

          sa02 sa05 sa08 sa12 sa15 sa18 sa21 sa24 sa27 sa30 sar02 sar05 sar08 sar12 sar15 sar18 sar21 sar24 sar27 sar30

          sa03 sa06 sa09 sa13 sa16 sa19 sa22 sa25 sa28 sa31 sar03 sar06 sar09 sar13 sar16 sar19 sar22 sar25 sar28 sar31

          sa開頭的文件是數據文件, 需要用sar -f 命令來讀取,直接cat會亂碼

          [root@www ~]# sar -f /var/log/sa/sa01 #如果不指定查看的文件,那么查看的就是當天的信息。

          Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/01/2018 _x86_64_ (1 CPU)

          12:00:01 AM CPU %user %nice %system %iowait %steal %idle

          12:10:01 AM all 0.15 0.00 0.10 0.00 0.00 99.75

          12:20:01 AM all 0.15 0.00 0.10 0.00 0.00 99.75

          (此處省略N行。。。)

          字段解釋:

          字段解釋:

          第一行顯示的依次是,系統(tǒng)內核版本,主機名,日期,系統(tǒng)數據位 CPU數量

          第二行為空,

          第三行為字段頭,表示這一列代表的數據是什么,

          %user 用戶空間的CPU使用

          %nice 改變過優(yōu)先級的進程的CPU使用率

          %system 內核空間的CPU使用率

          %iowait CPU等待IO的百分比

          %steal 虛擬機的虛擬機CPU使用的CPU

          %idle 空閑的CPU

          在以上的顯示當中,主要看%iowait和%idle,%iowait過高表示存在I/O瓶頸,即磁盤IO無法滿足業(yè)務需求,如果%idle過低表示CPU使用率比較嚴重,需要結合內存使用等情況判斷CPU是否瓶頸。

          sar開頭的文件為普通文本文件,可以直接使用cat等命令查看。

          [root@www ~]# head -6 /var/log/sa/sar01

          Linux 3.10.0-693.11.1.el7.x86_64 (www) 2018-06-01 _x86_64_ (1 CPU)

          12:00:01 AM CPU %usr %nice %sys %iowait %steal %irq %soft %guest %gnice %idle

          12:10:01 AM all 0.15 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.75

          12:10:01 AM 0 0.15 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.75

          12:20:01 AM all 0.15 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.75

          sar -n DEV 查看網卡流量

          [root@www ~]# sar -n DEV

          Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

          12:00:01 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s

          12:10:01 AM eth0 0.11 0.11 0.01 0.02 0.00 0.00 0.00

          12:10:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00

          字段解釋:

          第一行顯示的依次是,系統(tǒng)內核版本,主機名,日期,系統(tǒng)數據位 CPU數量

          第二行為空,

          第三行為字段頭,表示這一列代表的數據是什么,

          12:00:01 AM :記錄信息的時間

          IFACE:網卡接口

          rxpck/s:接收的數據包數量。

          txpck/s:發(fā)送的數據包數量。

          rxkB/s:接收的數據大小。

          txkB/s:發(fā)送的數據大小。

          rxcmp/s:每秒鐘接收的壓縮數據包

          txcmp/s:每秒鐘發(fā)送的壓縮數據包

          rxmcst/s:每秒鐘接收的多播數據包

          sar -q 查看平均負載

          [root@www ~]# sar -q | head -6

          Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

          12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked

          12:10:01 AM 3 183 0.00 0.01 0.05 0

          12:20:01 AM 2 183 0.00 0.01 0.05 0

          12:30:01 AM 2 183 0.00 0.01 0.05 0

          字段解釋:

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

          plist-sz 進程列表中的進程(processes)和線程數(threads)的數量

          ldavg-1 最后1分鐘的CPU平均負載,即將多核CPU過去一分鐘的負載相加再除以核心數得出的平均值,5分鐘和15分鐘以此類推

          ldavg-5 最后5分鐘的CPU平均負載

          ldavg-15 最后15分鐘的CPU平均負載

          sar -b 磁盤讀寫

          [root@www ~]# sar -b | head -6

          Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

          12:00:01 AM tps rtps wtps bread/s bwrtn/s

          12:10:01 AM 0.38 0.09 0.29 3.51 2.94

          12:20:01 AM 0.12 0.00 0.12 0.00 1.21

          12:30:01 AM 0.14 0.00 0.14 0.00 1.43

          字段解釋:

          tps 磁盤每秒鐘的IO總數,等于iostat中的tps

          rtps 每秒鐘從磁盤讀取的IO總數

          wtps 每秒鐘從寫入到磁盤的IO總數

          bread/s 每秒鐘從磁盤讀取的塊總數

          bwrtn/s 每秒鐘此寫入到磁盤的塊總數

          sar -v 進程、inode、文件和鎖表狀態(tài)

          [root@www ~]# sar -v | head -6

          Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

          12:00:01 AM dentunusd file-nr inode-nr pty-nr

          12:10:01 AM 26702 1376 32673 0

          12:20:01 AM 26712 1376 32677 0

          12:30:01 AM 26718 1376 32677 0

          字段解釋:

          dentunusd 在緩沖目錄條目中沒有使用的條目數量

          file-nr 被系統(tǒng)使用的文件句柄數量

          inode-nr 已經使用的索引數量

          pty-nr 使用的pty數量

          更多sar用法參考:https://www.cnblogs.com/howhy/p/6396437.html

          5 nload命令

          nload命令主要用途: 用來即時監(jiān)看網路狀態(tài)和各ip所使用的帶寬

          nload 默認分為上下兩塊:

          上半部分是:Incoming也就是進入網卡的流量,

          下半部分是:Outgoing,也就是從這塊網卡出去的流量,

          每部分都有下面這幾個部分,看起來還是蠻直觀的。

          當前流量(Curr)

          平均流量(Avg)

          最小流量(Min)

          最大流量(Max),

          流量總和(Ttl)

          nload默認沒有安裝:yum安裝前需要安裝epel擴展包,然后再安裝nload

          [root@www ~]# yum install -y epel-release

          (安裝過程省略。。)

          [root@www ~]# yum install -y nload

          nload默認監(jiān)測的是eth0網卡

          [root@www ~]# nload

          如果你想監(jiān)測其他網卡的流量,可以使用左右按鍵在所有接口間切換。*或者在命令后接上網卡名。*

          [root@www ~]# nload ens33

          其他詳細用法參考:https://linux.cn/article-2871-1.html

          6 監(jiān)控io性能

          iostat

          iostat主要用于監(jiān)控系統(tǒng)設備的IO負載情況,iostat首次運行時顯示自系統(tǒng)啟動開始的各項統(tǒng)計信息,

          之后運行iostat將顯示自上次運行該命令以后的統(tǒng)計信息。

          用戶可以通過指定統(tǒng)計的次數和時間來獲得所需的統(tǒng)計信息。

          日常用法:iostat -d -k 2

          參數 -d 表示,顯示設備(磁盤)使用狀態(tài);-k某些使用block為單位的列強制使用Kilobytes為單位;2表示,數據顯示每隔2秒刷新一次。

          [root@www ~]# iostat -d -k 2

          Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

          Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

          vda 0.25 0.57 2.69 1589753 7512964

          ###我的服務器只有一塊vda磁盤。

          字段解釋:

          Device:磁盤設備名。

          tps:該設備每秒的傳輸次數,"一次傳輸"意思是"一次I/O請求"。

          多個邏輯請求可能會被合并為"一次I/O請求"。"一次傳輸"請求的大小是未知的。

          kB_read/s:每秒從設備(drive expressed)讀取的數據量;

          kB_wrtn/s:每秒向設備(drive expressed)寫入的數據量;

          kB_read:讀取的總數據量;

          kB_wrtn:寫入的總數量數據量;這些單位都為Kilobytes。

          iostat還有一個比較常用的選項-x,該選項將用于顯示和io相關的擴展數據。

          [root@www ~]# iostat -d -x -k 1 10 ###1和10代表的事每一秒刷新一次,刷新10次后停止。

          Linux 3.10.0-693.11.1.el7.x86_64 (www) 06/10/2018 _x86_64_ (1 CPU)

          Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

          vda 0.00 0.10 0.03 0.22 0.57 2.69 25.59 0.00 14.54 4.26 15.97 0.40 0.01

          字段解釋:

          rrqm/s:每秒這個設備相關的讀取請求有多少被Merge了

          (當系統(tǒng)調用需要讀取數據的時候,VFS將請求發(fā)到各個FS,如果FS發(fā)現不同的讀取請求讀取的是相同Block的數據,FS會將這個請求合并Merge);

          wrqm/s:每秒這個設備相關的寫入請求有多少被Merge了。

          rsec/s:每秒讀取的扇區(qū)數;

          wsec/:每秒寫入的扇區(qū)數。

          rKB/s:The number of read requests that were issued to the device per second;

          wKB/s:The number of write requests that were issued to the device per second;

          avgrq-sz 平均請求扇區(qū)的大小

          avgqu-sz 是平均請求隊列的長度。毫無疑問,隊列長度越短越好。

          await:每一個IO請求的處理的平均時間(單位是微秒毫秒)。這里可以理解為IO的響應時間,一般地系統(tǒng)IO響應時間應該低于5ms,如果大于10ms就比較大了。

          這個時間包括了隊列時間和服務時間,也就是說,一般情況下,await大于svctm,它們的差值越小,則說明隊列時間越短,反之差值越大,隊列時間越長,說明系統(tǒng)出了問題。

          svctm 表示平均每次設備I/O操作的服務時間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm的值,則表示I/O隊列等待太長, 系統(tǒng)上運行的應用程序將變慢。

          %util: 在統(tǒng)計時間內所有處理IO時間,除以總共統(tǒng)計時間。例如,如果統(tǒng)計間隔1秒,該設備有0.8秒在處理IO,而0.2秒閑置,那么該設備的%util = 0.8/1 = 80%,所以該參數暗示了設備的繁忙程度

          。一般地,如果該參數是100%表示設備已經接近滿負荷運行了(當然如果是多磁盤,即使%util是100%,因為磁盤的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。

          iostat更多詳細用法參考:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html

          iotop

          有時我們希望知道到底哪個進程產生了IO,這個時候就需要iotop這個工具了。 它的輸出和top命令類似,簡單直觀。

          首次使用iotop工具需要先進行安裝:

          [root@long01 ~]# yum install -y iotop

          用法:直接執(zhí)行,-d選項指定信息刷新的時間,單位為秒。

          [root@long01 ~]# iotop -d 20

          Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s

          Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 2.90 K/s

          TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND

          25 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:1]

          1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd –switched-root –system –deserialize 21

          2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]

          1027 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % -bash

          這個命令主要關注的是“IO>“ 這一列,表示進程占用磁盤IO的百分比。

          7 free命令

          free 命令會顯示內存的使用情況,包括實體內存,虛擬的交換文件內存,共享內存區(qū)段,以及系統(tǒng)核心使用的緩沖區(qū)等。

          用法:直接執(zhí)行

          [root@long01 ~]# free

          total used free shared buff/cache available

          Mem: 2031912 131408 81632 8820 1818872 1685252

          Swap: 2097148 0 2097148

          字段解釋:

          Mem:這一行表示物理內存的信息

          Swap:這一行表示交換區(qū)的信息。

          total列:表示物理內存總大小和交換分區(qū)的總大小。

          used:已使用的內存或交換分區(qū)。

          free:空閑的內存或者交換分區(qū)。

          shared:共享的內存

          buff/cache:緩存區(qū)和緩沖區(qū)的容量大小,

          buffer:緩沖區(qū),CPU處理好的數據如果直接寫入磁盤的話太慢了,需要先存放在內存中,這個過程就叫做緩沖。

          cache:由于CPU直接到磁盤中讀取數據也非常慢,所以程序需要先將磁盤中部分數據加載到內存中再讓CPU進行計算,這叫做緩存。

          available:可使用的內存容量大小。

          total=used+free+buff/cache

          available包含free和buffer/cache剩余部分

          常用選項:

          -b:以Byte為單位顯示內存使用情況;

          [root@long01 ~]# free -b

          total used free shared buff/cache available

          Mem: 2080677888 134594560 82591744 9031680 1863491584 1725714432

          Swap: 2147479552 0 2147479552

          -h:易讀方式顯示。

          [root@long01 ~]# free -h

          total used free shared buff/cache available

          Mem: 1.9G 128M 78M 8.6M 1.7G 1.6G

          Swap: 2.0G 0B 2.0G

          -k:以KB為單位顯示內存使用情況;

          [root@long01 ~]# free -k

          total used free shared buff/cache available

          Mem: 2031912 131340 80756 8820 1819816 1685368

          Swap: 2097148 0 2097148

          -m:以MB為單位顯示內存使用情況;

          [root@long01 ~]# free -m

          total used free shared buff/cache available

          Mem: 1984 128 78 8 1777 1645

          Swap: 2047 0 2047

          -s<間隔秒數>:持續(xù)觀察內存使用狀況;

          [root@long01 ~]# free -s 1

          total used free shared buff/cache available

          Mem: 2031912 131584 80500 8820 1819828 1685124

          Swap: 2097148 0 2097148

          total used free shared buff/cache available

          Mem: 2031912 131584 80500 8820 1819828 1685124

          Swap: 2097148 0 2097148

          8 ps命令

          ps命令用于報告當前系統(tǒng)的進程狀態(tài)。可以搭配kell指令隨時中斷、刪除不必要的程序。

          用法:直接使用將目前屬于您自己這次登入的 PID 與相關信息列示出來

          [root@long01 ~]# ps -l ###-l選項顯示更詳細的信息

          F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

          4 S 0 992 988 0 80 0 – 28848 do_wai pts/0 00:00:00 bash

          0 R 0 1020 992 0 80 0 – 37235 – pts/0 00:00:00 ps

          [root@long01 ~]# ps

          PID TTY TIME CMD

          992 pts/0 00:00:00 bash

          1021 pts/0 00:00:00 ps

          字段解釋:

          F 代表這個程序的旗標 (flag), 4 代表使用者為 superuser;

          S 代表這個程序的狀態(tài) (STAT);

          UID 代表執(zhí)行者身份

          PID 進程的ID號!

          PPID 父進程的ID;

          C CPU使用的資源百分比

          PRI指進程的執(zhí)行優(yōu)先權(Priority的簡寫),其值越小越早被執(zhí)行;

          NI 這個進程的nice值,其表示進程可被執(zhí)行的優(yōu)先級的修正數值。

          ADDR 這個是內核函數,指出該程序在內存的那個部分。如果是個執(zhí)行 的程序,一般就是『 – 』

          SZ 使用掉的內存大小;

          WCHAN 目前這個程序是否正在運作當中,若為 – 表示正在運作;

          TTY 登入者的終端機位置;

          TIME 使用掉的 CPU 時間。

          CMD 所下達的指令名稱

          列出目前所有的進程:

          [root@long01 ~]# ps -aux

          USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

          root 1 0.0 0.3 193700 6820 ? Ss 21:10 0:00 /usr/lib/systemd/systemd –switched-root –system –deserialize 21

          root 2 0.0 0.0 0 0 ? S 21:10 0:00 [kthreadd]

          root 3 0.0 0.0 0 0 ? S 21:10 0:00 [ksoftirqd/0]

          (省略n行。。。)

          字段解釋:

          USER:該進程屬于那個使用者賬號。

          PID :該進程的進程ID號。

          %CPU:該進程使用掉的 CPU 資源百分比;

          %MEM:該進程所占用的物理內存百分比;

          VSZ :該進程使用掉的虛擬內存量 (Kbytes)

          RSS :該進程占用的固定的內存量 (Kbytes)

          TTY :該進程是在那個終端機上面運作,若與終端機無關,則顯示 ?。

          另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網絡連接進主機的程序。

          STAT:該程序目前的狀態(tài),主要的狀態(tài)有:

          D 不能中斷的進程

          R run狀態(tài)的進程

          S sleep狀態(tài)的進程

          T 暫停的進程

          Z 僵尸進程

          < 高優(yōu)先級進程

          N 低優(yōu)先級進程

          L 內存中被鎖了內存分頁

          s 主進程

          l 多線程進程

          + 前臺進程

          START:該進程被觸發(fā)啟動的時間;

          TIME :該進程實際使用 CPU 運作的時間。

          COMMAND:該程序的實際指令。

          9 查看網絡狀態(tài)

          netstat命令

          netstat命令用來打印Linux中網絡系統(tǒng)的狀態(tài)信息,可讓你得知整個Linux系統(tǒng)的網絡情況。

          可用選項:

          -a或–all:顯示所有連線中的Socket;

          -A<網絡類型>或–<網絡類型>:列出該網絡類型連線中的相關地址;

          -c或–continuous:持續(xù)列出網絡狀態(tài);

          -C或–cache:顯示路由器配置的快取信息;

          -e或–extend:顯示網絡其他相關信息;

          -F或–fib:顯示FIB;

          -g或–groups:顯示多重廣播功能群組組員名單;

          -h或–help:在線幫助;

          -i或–interfaces:顯示網絡界面信息表單;

          -l或–listening:顯示監(jiān)控中的服務器的Socket;

          -M或–masquerade:顯示偽裝的網絡連線;

          -n或–numeric:直接使用ip地址,而不通過域名服務器;

          -N或–netlink或–symbolic:顯示網絡硬件外圍設備的符號連接名稱;

          -o或–timers:顯示計時器;

          -p或–programs:顯示正在使用Socket的程序識別碼和程序名稱;

          -r或–route:顯示Routing Table;

          -s或–statistice:顯示網絡工作信息統(tǒng)計表;

          -t或–tcp:顯示TCP傳輸協(xié)議的連線狀況;

          -u或–udp:顯示UDP傳輸協(xié)議的連線狀況;

          -v或–verbose:顯示指令執(zhí)行過程;

          -V或–version:顯示版本信息;

          -w或–raw:顯示RAW傳輸協(xié)議的連線狀況;

          -x或–unix:此參數的效果和指定"-A unix"參數相同;

          –ip或–inet:此參數的效果和指定"-A inet"參數相同。

          常規(guī)用法:

          ### netstat -lnp 查看監(jiān)聽端口

          [root@long01 ~]# netstat -lnp

          Active Internet connections (only servers)

          Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

          tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 879/sshd

          tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 975/master

          tcp6 0 0 :::22 :::* LISTEN 879/sshd

          tcp6 0 0 ::1:25 :::* LISTEN 975/master

          udp 0 0 127.0.0.1:323 0.0.0.0:* 554/chronyd

          udp6 0 0 ::1:323 :::* 554/chronyd

          Active UNIX domain sockets (only servers)

          Proto RefCnt Flags Type State I-Node PID/Program name Path

          unix 2 [ ACC ] STREAM LISTENING 1582 1/systemd /run/systemd/journal/stdout

          unix 2 [ ACC ] STREAM LISTENING 19383 975/master private/tlsmgr

          unix 2 [ ACC ] STREAM LISTENING 19386 975/master private/rewrite

          unix 2 [ ACC ] STREAM LISTENING 19389 975/master private/bounce

          unix 2 [ ACC ] STREAM LISTENING 19392 975/master private/defer

          (省略N行。。。)

          從整體上看,netstat的輸出結果可以分為兩個部分:

          一個是Active Internet connections,稱為有源TCP連接,

          其中"Recv-Q"和"Send-Q"指%0A的是接收隊列和發(fā)送隊列。

          這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。

          另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是只能用于本機通信,性能可以提高一倍)。

          Proto顯示連接使用的協(xié)議,RefCnt表示連接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態(tài),Path表示連接到套接口的其它進程使用的路徑名。

          netstat -an 查看系統(tǒng)的網絡連接狀況

          [root@long01 ~]# netstat -an

          Active Internet connections (servers and established)

          Proto Recv-Q Send-Q Local Address Foreign Address State

          tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

          tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN

          tcp 0 52 10.1.1.25:22 10.1.1.169:51625 ESTABLISHED

          tcp6 0 0 :::22 :::* LISTEN

          tcp6 0 0 ::1:25 :::* LISTEN

          udp 0 0 127.0.0.1:323 0.0.0.0:*

          udp6 0 0 ::1:323 :::*

          Active UNIX domain sockets (servers and established)

          Proto RefCnt Flags Type State I-Node Path

          unix 2 [ ] DGRAM 1562 /run/systemd/notify

          unix 2 [ ] DGRAM 1564 /run/systemd/cgroups-agent

          unix 2 [ ] DGRAM 16672 /var/run/chrony/chronyd.sock

          unix 2 [ ACC ] STREAM LISTENING 1582 /run/systemd/journal/stdout

          (省略N行。。)

          ##關于STATE列各個狀態(tài)的一個簡要說明:

          LISTEN:偵聽并等待對端的TCP連接請求

          SYN-SENT:發(fā)送SYN連接請求后,等待對端回復SYN請求

          SYN-RECEIVED:收到來自對端的SYN請求,并回復SYN請求后,等待對端響應SYN請求的ACK消息

          ESTABLISHED:代表連接建立,雙方在這個狀態(tài)下進行TCP數據交互

          FIN-WAIT-1:發(fā)送FIN關閉連接請求后,等待對方響應FIN的ACK消息或者對端的FIN關閉請求

          FIN-WAIT-2:等待對方FIN關閉請求

          CLOSE-WAIT:等待本地用戶(進程)發(fā)送FIN關閉請求給對端

          CLOSING:當雙方同時發(fā)送FIN關閉請求時,會進入CLOSING狀態(tài),等待對端發(fā)送FIN報文的響應ACK消息

          LAST-ACK:收到對端FIN請求后,回復ACK及FIN并等待對方回復FIN的響應ACK消息,此時進入此狀態(tài)

          TIME-WAIT:該狀態(tài)是為了確保對端收到了FIN請求的ACK響應,默認會等待兩倍MSL時長(MSL:Maximum Segment Lifetime,即報文最大生存時間,超過這個時間的報文會被丟棄)

          netstat -lntp 只看出tcp的,不包含socket

          [root@long01 ~]# netstat -lntp

          Active Internet connections (only servers)

          Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

          tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 879/sshd

          tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 975/master

          tcp6 0 0 :::22 :::* LISTEN 879/sshd

          tcp6 0 0 ::1:25 :::* LISTEN 975/master

          ss和nestat異曲同工,只是顯示的信息不如netstat詳細。

          [root@long01 ~]# ss -ta

          State Recv-Q Send-Q Local Address:Port Peer Address:Port

          LISTEN 0 128 *:ssh *:*

          LISTEN 0 100 127.0.0.1:smtp *:*

          ESTAB 0 52 10.1.1.25:ssh 10.1.1.169:51625

          LISTEN 0 128 :::ssh :::*

          LISTEN 0 100 ::1:smtp :::*

          [root@long01 ~]# ss -atn ##-n選項可以將端口協(xié)議顯示為端口號。

          State Recv-Q Send-Q Local Address:Port Peer Address:Port

          LISTEN 0 128 *:22 *:*

          LISTEN 0 100 127.0.0.1:25 *:*

          ESTAB 0 52 10.1.1.25:22 10.1.1.169:51625

          LISTEN 0 128 :::22 :::*

          LISTEN 0 100 ::1:25 :::*

          小技巧: netstat -an | awk ‘/^tcp/ {++sta[$NF]} END {for(key in sta) print key,”t”,sta[key]}’

          這條命令可以統(tǒng)計出各個狀態(tài)下的tcp鏈接的數量。

          [root@www ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"t",sta[key]}'

          LISTEN 7

          ESTABLISHED 2

          10 linux下抓包

          tcpdump

          tcpdump命令是一款抓包工具,它可以打印所有經過網絡接口的數據包的頭信息,也可以使用-w選項將數據包保存到文件中,方便以后分析。

          tcpdump工具需要自行安裝:

          [root@long01 ~]# yum install -y tcpdump

          格式:tcpdump 選項

          可用選項:

          -a:嘗試將網絡和廣播地址轉換成名稱;

          -c<數據包數量>:收到指定的數據包數量后,就停止進行傾倒操作;

          -d:把編譯過的數據包編碼轉換成可閱讀的格式,并傾倒到標準輸出;

          -dd:把編譯過的數據包編碼轉換成C語言的格式,并傾倒到標準輸出;

          -ddd:把編譯過的數據包編碼轉換成十進制數字的格式,并傾倒到標準輸出;

          -e:在每列傾倒資料上顯示連接層級的文件頭;

          -f:用數字顯示網際網絡地址;

          -F<表達文件>:指定內含表達方式的文件;

          -i<網絡界面>:使用指定的網絡截面送出數據包;

          -l:使用標準輸出列的緩沖區(qū);

          -n:不把主機的網絡地址轉換成名字;

          -N:不列出域名;

          -O:不將數據包編碼最佳化;

          -p:不讓網絡界面進入混雜模式;

          -q :快速輸出,僅列出少數的傳輸協(xié)議信息;

          -r<數據包文件>:從指定的文件讀取數據包數據;

          -s<數據包大小>:設置每個數據包的大小;

          -S:用絕對而非相對數值列出TCP關聯(lián)數;

          -t:在每列傾倒資料上不顯示時間戳記;

          -tt: 在每列傾倒資料上顯示未經格式化的時間戳記;

          -T<數據包類型>:強制將表達方式所指定的數據包轉譯成設置的數據包類型;

          -v:詳細顯示指令執(zhí)行過程;

          -vv:更詳細顯示指令執(zhí)行過程;

          -x:用十六進制字碼列出數據包資料;

          -w<數據包文件>:把數據包數據寫入指定的文件。

          日常用法:

          直接執(zhí)行tcpdump將監(jiān)視第一個網絡接口上所有流過的數據包

          tcpdump默認監(jiān)控的是eth0端口,由于我這里的網卡名是ens33所以需要使用-i選項指定監(jiān)聽的網卡

          [root@long01 ~]# tcpdump -nni ens33

          22:16:36.031834 IP 10.1.1.25.22 > 10.1.1.169.51625: Flags [P.], seq 57044:57208, ack 1, win 274, length 164

          22:16:36.077590 IP 10.1.1.169.51625 > 10.1.1.25.22: Flags [P.], seq 1:53, ack 57044, win 2053, length 52

          (此處省略N行)。

          ^C

          406 packets captured

          406 packets received by filter

          0 packets dropped by kernel

          一條信息表示的依次是:時間,IP 源IP.端口 > 目標IP.端口 數據包標簽[],數據包類型、長度等信息。

          ##-nn選項的作用是IP的端口都以數字的形式顯示。不使用-nn選項的話有些時候會顯示協(xié)議名等信息。

          ##tcpdump默認會一直抓包,知道按Ctrl+C終止抓包。

          監(jiān)視指定端口的數據包

          [root@long01 ~]# tcpdump -nni ens33 port 80

          tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

          listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes

          23:01:31.055177 IP 10.1.1.169.61714 > 183.61.83.225.80: Flags [S], seq 2508788990, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0

          23:01:31.094872 IP 183.61.83.225.80 > 10.1.1.169.61714: Flags [S.], seq 3687868093, ack 2508788991, win 14600, options [mss 1420,nop,nop,sackOK,nop,wscale 9], length 0

          監(jiān)視端口不是22和ip不是10.1.1.1的數據包:

          [root@long01 ~]# tcpdump -nn -i ens33 not port 22 and not host 10.1.1.1

          tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

          listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes

          23:05:51.871825 IP 10.1.1.169.61745 > 183.61.83.225.80: Flags [S], seq 2512730790, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0

          23:05:51.910597 IP 183.61.83.225.80 > 10.1.1.169.61745: Flags [S.], seq 2995415503, ack 2512730791, win 14600, options [mss 1420,nop,nop,sackOK,nop,wscale 9], length 0

          23:05:51.910602 IP 10.1.1.169.61745 > 183.61.83.225.80: Flags [.], ack 1, win 260, length 0

          抓取100個數據包然后將數據包保存到data.cab 文件中

          [root@long01 ~]# tcpdump -nni ens33 -c 100 -w data.cap

          tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes

          100 packets captured

          100 packets received by filter

          0 packets dropped by kernel

          #這樣抓取到的數據包只能使用tcpdump -r選項來讀取, 直接cat的話就是亂碼。

          [root@long01 ~]# tcpdump -r data.cap

          reading from file data.cap, link-type EN10MB (Ethernet)

          23:19:11.281776 IP long01.ssh > 10.1.1.169.61711: Flags [P.], seq 4277860660:4277860808, ack 3580160994, win 251, length 148

          23:19:11.281872 IP 10.1.1.169.61711 > long01.ssh: Flags [.], ack 148, win 2050, length 0

          23:19:13.883733 IP 10.1.1.169.51427 > 239.255.255.250.ssdp: UDP, length 137

          (此處省略N行。。)

          tshark

          tshark是另外一個和tcpdump相似的工具:

          tshark命令需要先安裝wireshark包才能使用。

          [root@www ~]# yum install -y wireshark

          案例:通過tshark抓取web服務的訪問日志。

          [root@www ~]# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

          tshark: -R without -2 is deprecated. For single-pass filtering use -Y.

          Running as user "root" and group "root". This could be dangerous.

          Capturing on 'eth0'

          "Jun 10, 2018 23:52:23.476398708 CST" 222.209.152.12 blog.deaoza.cn GET /

          "Jun 10, 2018 23:52:26.012348996 CST" 222.209.152.12 blog.deaoza.cn GET /

          "Jun 10, 2018 23:52:27.461011485 CST" 111.255.194.27 GET /

          "Jun 10, 2018 23:52:35.721419187 CST" 222.209.152.12 blog.deaoza.cn GET /

          ^C4 packets captured

          11 Linux網絡相關

          ifconfig查看網卡ip

          如果提示ifconfig命令不存在需要安裝net-tools才能使用:

          [root@www ~]# yum install -y net-tools

          [root@www ~]# ifconfig eth0 #帶網卡名可以查看指定網卡的信息,不指定網卡名會列出所有網卡的信息。

          eth0: flags=4163 mtu 1500

          inet 172.18.144.188 netmask 255.255.240.0 broadcast 172.18.159.255

          ether 00:16:3e:02:ab:ef txqueuelen 1000 (Ethernet)

          RX packets 658723 bytes 422204534 (402.6 MiB)

          RX errors 0 dropped 0 overruns 0 frame 0

          TX packets 502257 bytes 139548559 (133.0 MiB)

          TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

          關閉、啟動網卡

          (注:如果是遠程連接的話,關閉和啟動網卡的操作必須同時執(zhí)行,否則會導致無法再遠程連接上。

          ifdown eth0&&ifup eth0

          [root@www ~]# ifdown eth0&&ifup eth0

          Determining IP information for eth0… done.

          [root@www ~]#

          設定虛擬網卡

          有時候需要給服務器增加一個IP。就可以通過添加虛擬網卡的方式增加一個IP

          首先進入網卡配置目錄

          [root@long01 ~]# cd /etc/sysconfig/network-scripts/

          [root@long01 network-scripts]# pwd

          /etc/sysconfig/network-scripts

          復制一份網卡配置文件

          [root@long01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0

          [root@long01 network-scripts]# ls -dl ./ifcfg-ens33*

          -rw-r–r–. 1 root root 223 5月 13 20:32 ./ifcfg-ens33

          -rw-r–r–. 1 root root 223 6月 11 00:09 ./ifcfg-ens33:0

          修改ifcfg-ens33:0配置文件,

          將NAME和DEVICE改為ens33:0,

          IPADDR修改為要添加的IP:我這里為10.1.1.100,根據自己情況來修改。

          再將DNS刪除

          ##檢查修改結果。

          [root@long01 network-scripts]# grep -E "NAME|IPADDR|DNS|DEVICE" ifcfg-ens33:0

          NAME=ens33:0

          DEVICE=ens33:0

          IPADDR=10.1.1.100

          [root@long01 network-scripts]#

          重啟ens33網卡后檢查ens33:0網卡是否添加成功

          [root@long01 network-scripts]# ifdown ens33 && ifup ens33

          成功斷開設備 'ens33'。

          連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/3)

          [root@long01 network-scripts]# ifconfig ens33:0

          ens33:0: flags=4163 mtu 1500

          inet 10.1.1.100 netmask 255.255.255.0 broadcast 10.1.1.255

          ether 00:0c:29:d3:3e:41 txqueuelen 1000 (Ethernet)

          從宿主機CMD檢查是否能ping通10.1.1.100

          C:UsersLongGe>ping 10.1.1.100

          正在 Ping 10.1.1.100 具有 32 字節(jié)的數據:

          來自 10.1.1.100 的回復: 字節(jié)=32 時間<1ms TTL=64

          來自 10.1.1.100 的回復: 字節(jié)=32 時間<1ms TTL=64

          來自 10.1.1.100 的回復: 字節(jié)=32 時間<1ms TTL=64

          來自 10.1.1.100 的回復: 字節(jié)=32 時間<1ms TTL=64

          10.1.1.100 的 Ping 統(tǒng)計信息:

          數據包: 已發(fā)送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),

          往返行程的估計時間(以毫秒為單位):

          最短 = 0ms,最長 = 0ms,平均 = 0ms

          查看網卡是否連接

          mii-tool ens33 查看網卡是否連接

          [root@long01 network-scripts]# mii-tool ens33

          ens33: negotiated 1000baseT-FD flow-control, link ok #顯示link ok 就是已連接

          ethtool ens33 也可以查看網卡是否連接,并顯示更為詳細的信息。

          [root@long01 network-scripts]# ethtool ens33

          Settings for ens33:

          Supported ports: [ TP ]

          Supported link modes: 10baseT/Half 10baseT/Full

          100baseT/Half 100baseT/Full

          1000baseT/Full

          Supported pause frame use: No

          Supports auto-negotiation: Yes

          Advertised link modes: 10baseT/Half 10baseT/Full

          100baseT/Half 100baseT/Full

          1000baseT/Full

          Advertised pause frame use: No

          Advertised auto-negotiation: Yes

          Speed: 1000Mb/s

          Duplex: Full

          Port: Twisted Pair

          PHYAD: 0

          Transceiver: internal

          Auto-negotiation: on

          MDI-X: off (auto)

          Supports Wake-on: d

          Wake-on: d

          Current message level: 0x00000007 (7)

          drv probe link

          Link detected: yes

          更改主機名

          主機名配置文件:/etc/hostname,修改主機名可以通過修改這個文件來實現。

          [root@long01 ~]# sed -i 's/.*/long001/g' /etc/hostname

          [root@long01 ~]# cat /etc/hostname

          long001

          通過修改hostname文件修改主機名后需要重啟系統(tǒng)才會生效

          [root@long001 ~]# hostname

          long001

          或者使用命令:hostnamectl set-hostname 來實現修改主機名。

          [root@long001 ~]# hostnamectl set-hostname long0000

          [root@long001 ~]# 登出

          重新登錄后就會生效。

          [root@long0000 ~]# hostname

          long0000

          DNS配置

          DNS一般是在網卡配置文件里設置,

          如果需要臨時添加一個DNS,可以在/etc/resolv.conf文件中添加,

          [root@long0000 ~]# echo "nameserver 8.8.8.8" >> /etc/resolv.conf

          [root@long0000 ~]# cat /etc/resolv.conf

          # Generated by NetworkManager

          nameserver 223.5.5.5

          nameserver 61.139.2.69

          nameserver 8.8.8.8

          在CentOS7中,這個文件中添加的DNS會在重啟網卡的時候被覆蓋。

          [root@long0000 ~]# ifdown ens33 && ifup ens33

          成功斷開設備 'ens33'。

          連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/2)

          [root@long0000 ~]# cat /etc/resolv.conf

          # Generated by NetworkManager

          nameserver 223.5.5.5

          nameserver 61.139.2.69

          hosts文件

          /etc/hosts文件與Windows中的hosts文件一樣,可以將一個多個域名指向一個IP,類似于DNS的功能。

          [root@long0000 ~]# echo "10.1.1.169 www.test1.com" >> /etc/hosts

          [root@long0000 ~]# ping www.test1.com

          PING www.test1.com (10.1.1.169) 56(84) bytes of data.

          64 bytes from www.test1.com (10.1.1.169): icmp_seq=1 ttl=64 time=0.173 ms

          64 bytes from www.test1.com (10.1.1.169): icmp_seq=2 ttl=64 time=0.388 ms

          64 bytes from www.test1.com (10.1.1.169): icmp_seq=3 ttl=64 time=0.175 ms

          64 bytes from www.test1.com (10.1.1.169): icmp_seq=4 ttl=64 time=0.234 ms

          ^C

          — www.test1.com ping statistics —

          4 packets transmitted, 4 received, 0% packet loss, time 3000ms

          rtt min/avg/max/mdev = 0.173/0.242/0.388/0.088 ms

          贊(0)
          分享到: 更多 (0)
          網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號