w命令用於顯示目前登入系統的用戶信息。執行這項指令可得知目前登入系統的用戶有哪些人,以及他們正在執行的程序。單獨執行 w 指令會顯示全部的用戶,您也可指定用戶名稱,僅顯示某位用戶的相關信息ios
選項 -f 開啓或關閉顯示用戶從何處登入系統 -h 不顯示各欄位的標題信息列 -l 使用詳細格式列表,此爲預設值 -s 使用簡潔格式列表,不顯示用戶登入時間,終端機階段做業和程序所耗費的CPU時間 -u 忽略執行程序的名稱,以及該程序耗費CPU時間的信息 -V 顯示版本信息
[root@localhost ~]# w (查看系統負載) 14:03:33 up 3:01, 2 users, load average: 0.00, 0.01, 0.05 (系統時間和登錄時間,登陸用戶的個數,後邊的內容爲最重要的,表示1分鐘,5分鐘,15分鐘內的使用cpu活動進程有多少個) USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 11:0 33:00m 0.03s 0.03s -bash root pts/0 192.168.1.1 11:0 35.00s 0.12s 0.03s w [root@localhost ~]# date (可使用此命令查看時間) 2018年 06月 03日 星期日 14:04:16 CST [root@localhost ~]# cat /proc/cpuinfo (查看系統CPU個數,看第一行數字,0表示1顆cpu,一次類推,表示邏輯CPU) processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 58 ......(中間省略) clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: [root@localhost ~]# uptime (uptime與w命令效果同樣) 14:21:35 up 3:19, 2 users, load average: 0.00, 0.01, 0.05
User: 登陸用戶名 TTY: 登陸後系統分配的終端號 From: 遠程主機名,即從哪登陸的 login@:什麼時候登陸 IDLE: 用戶空閒時間。這是個計時器,一旦用戶執行任何操做,改計時器就會被重置 JCPU: 和終端鏈接的全部進程佔用時間。包括當前正在運行的後臺做業佔用時間 PCPU: 當前進程所佔用時間 WHAT: 當前正在運行進程的命令行
vmstat命令的含義爲顯示虛擬內存狀態(「Viryual Memor Statics」),可是它能夠報告關於進程、內存、I/O等系統總體運行狀態nginx
選項 -a:顯示活動內頁 -f:顯示啓動後建立的進程總數 -m:顯示slab信息 -n:頭信息僅顯示一次 -s:以表格方式顯示事件計數器和內存狀態 -d:報告磁盤狀態 -p:顯示指定的硬盤分區狀態 -S:輸出信息的單位
[root@localhost ~]# vmstat (顯示系統進程) procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si sobibo in cs us sy id wa st 0 0 0 742892 2076 14373600 8 1 30 27 0 0 100 0 0 [root@localhost ~]# vmstat 1 (加1表示每一秒顯示一次,按Ctrl+c結束) procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si sobibo in cs us sy id wa st 1 0 0 742736 2076 14376800 8 1 30 27 0 0 100 0 0 0 0 0 742736 2076 14376800 016 66 56 0 0 100 0 0 0 0 0 742736 2076 14376800 0 0 58 47 0 0 100 0 0 0 0 0 742736 2076 14376800 0 0 72 54 0 0 100 0 0 0 0 0 742736 2076 14376800 0 0 46 37 0 0 100 0 0 0 0 0 742736 2076 14376800 0 0 63 52 0 0 100 0 0 0 0 0 742736 2076 14376800 0 0 62 45 0 1 100 0 0 0 0 0 742736 2076 14376800 0 0 50 46 0 0 100 0 0 0 0 0 742736 2076 14376800 0 0 53 42 0 0 100 0 0 ^C [root@localhost ~]# vmstat 1 5 (表示每一秒顯示一次,只顯示五次) procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si sobibo in cs us sy id wa st 1 0 0 743108 2076 14376800 8 1 30 27 0 0 100 0 0 0 0 0 743108 2076 14376800 0 0 65 49 0 0 100 0 0 0 0 0 743108 2076 14376800 0 0 46 40 0 0 100 0 0 0 0 0 743108 2076 14376800 0 0 53 43 0 0 100 0 0 0 0 0 743108 2076 14376800 0 0 42 38 0 0 100 0 0
r: 運行隊列中進程數量,這個值也能夠判斷是否須要增長CPU。(長期大於1)
b: 等待IO的進程數量git
swpd: 使用虛擬內存大小,若是swpd的值不爲0,可是SI,SO的值長期爲0,這種狀況不會影響系統性能
free: 空閒物理內存大小
buff: 用做緩衝的內存大小
cache: 用做緩存的內存大小,若是cache的值大的時候,說明cache處的文件數多,若是頻繁訪問到的文件都能被cache處,那麼磁盤的讀IO bi會很是小github
si: 每秒從交換區寫到內存的大小,由磁盤調入內存
so: 每秒寫入交換區的內存大小,由內存調入磁盤web
注意:內存夠用的時候,這2個值都是0,若是這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閒內存(free)不多的或接近於0時,就認爲內存不夠用了,不能光看這一點,還要結合si和so,若是free不多,可是si和so也不多(大多時候是0),那麼不用擔憂,系統性能這時不會受到影響的。
bi: 每秒讀取的塊數
bo: 每秒寫入的塊數算法
注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。
in: 每秒中斷數,包括時鐘中斷 cs: 每秒上下文切換數shell
注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。
us: 用戶進程執行時間百分比(user time)
sy: 內核系統進程執行時間百分比(system time)
wa: IO等待時間百分比
id: 空閒時間百分比vim
wa的值高時,說明IO等待比較嚴重,這可能因爲磁盤大量做隨機訪問形成,也有可能磁盤出現瓶頸(塊操做)。 sy的值高時,說明系統內核消耗的CPU資源多,這並非良性表現,咱們應該檢查緣由。 us的值比較高時,說明用戶進程消耗的CPU時間多,可是若是長期超50%的使用,那麼咱們就該考慮優化程序算法或者進行加速。
top命令能夠實時動態地查看系統的總體運行狀況,是一個綜合了多方信息監測系統性能和運行信息的實用工具。經過top命令所提供的互動式界面,用熱鍵能夠管理緩存
選項 -b:以批處理模式操做 -c:顯示完整的治命令 -d:屏幕刷新間隔時間 -I:忽略失效過程 -s:保密模式 -S:累積模式 -i:設置間隔時間 -u:指定用戶名 -p:指定進程 -n:循環顯示的次數
[root@localhost ~]# top (查看系統進程) top - 14:48:42 up 3:46, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1008176 total, 742008 free, 119936 used, 146232 buff/cache KiB Swap: 2047996 total, 2047996 free,0 used. 724776 avail Mem 14:48:42(當前系統時間);3:46(系統已經運行了16天);2 users(個用戶當前登陸);load average: 0.00, 0.01, 0.05(系統負載,即任務隊列的平均長度) Tasks: 93 total(總進程數);1 running(正在運行的進程數);92 sleeping(睡眠的進程數);0 stopped(中止的進程數);0 zombie(凍結進程數) Cpu(s): 0.0%us(用戶空間佔用CPU百分比);0.2%sy(內核空間佔用CPU百分比);0.0%ni(用戶進程空間內改變過優先級的進程佔用CPU百分比);99.8%id(空閒CPU百分比);0.0%wa(等待輸入輸出的CPU時間百分比) Mem: 1008176k total(物理內存總量);742008k used(使用的物理內存總量);119936k free(空閒內存總量);146232k buffers(用做內核緩存的內存量) Swap: 2047996K total(交換區總量);0 used(使用的交換區總量);2047996k free(空閒交換區總量);724776k cached(緩衝的交換區總量) PID USER PR NIVIRTRESSHR S %CPU %MEM TIME+ COMMAND 544 root 20 0 305408 6380 4924 S 0.3 0.6 0:21.80 vmtoolsd 1268 root 20 0 157624 2160 1536 R 0.3 0.2 0:00.02 top 1 root 20 0 128208 6844 4080 S 0.0 0.7 0:01.57 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:02.35 rcu_sched 10 root rt 0 0 0 0 S 0.0 0.0 0:00.10 watchdog/0 按M會根據內存大小排序 PID USER PR NIVIRTRESSHR S %CPU %MEM TIME+ COMMAND 577 root 20 0 334276 29016 6896 S 0.0 2.9 0:02.79 firewalld 900 root 20 0 562432 16596 5916 S 0.0 1.6 0:02.66 tuned 538 polkitd 20 0 534936 11824 4868 S 0.0 1.2 0:00.11 polkitd 592 root 20 0 548048 9236 6904 S 0.0 0.9 0:01.02 NetworkManager 1 root 20 0 128208 6844 4080 S 0.0 0.7 0:01.57 systemd 544 root 20 0 305408 6380 4924 S 0.0 0.6 0:21.83 vmtoolsd 按1會列出全部CPU的使用狀況 Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie %Cpu0 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1008176 total, 742016 free, 119936 used, 146224 buff/cache [root@localhost ~]# top -c (能夠查看命令的全局狀態) top - 14:57:07 up 3:54, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1008176 total, 742024 free, 119920 used, 146232 buff/cache KiB Swap: 2047996 total, 2047996 free,0 used. 724792 avail Mem PID USER PR NIVIRTRESSHR S %CPU %MEM TIME+ COMMAND 542 root 20 0 21664 1284972 S 0.3 0.1 0:05.52 /usr/sbin/irqbalance --foreground 1 root 20 0 128208 6844 4080 S 0.0 0.7 0:01.57 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:00.05 [ksoftirqd/0] 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 root rt 0 0 0 0 S 0.0 0.0 0:00.02 [migration/0] 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh] 9 root 20 0 0 0 0 S 0.0 0.0 0:02.99 [rcu_sched] 10 root rt 0 0 0 0 S 0.0 0.0 0:00.10 [watchdog/0] 11 root rt 0 0 0 0 S 0.0 0.0 0:00.10 [watchdog/1] [root@localhost ~]# top -bn1 (靜態顯示,一次性顯示所有,可用於shell腳本) top - 14:58:20 up 3:56, 2 users, load average: 0.00, 0.01, 0.05 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 : 1008176 total, 742404 free, 119544 used, 146228 buff/cache KiB Swap: 2047996 total, 2047996 free,0 used. 725172 avail Mem PID USER PR NIVIRTRESSHR S %CPU %MEM TIME+ COMMAND 1273 root 20 0 157624 2048 1504 R 6.7 0.2 0:00.01 top 1 root 20 0 128208 6844 4080 S 0.0 0.7 0:01.57 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.05 ksoftirqd/0 ......(中間省略) 1269 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kworker/0:1 1272 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:2
sar命令是Linux下系統運行狀態統計工具,它將指定的操做系統狀態計數器顯示到標準輸出設備,被戲稱爲Linux的「瑞士×××」,可見其有強大的功能bash
選項 -A:顯示全部的報告信息 -b:顯示I/O速率 -B:顯示換頁狀態 -c:顯示進程建立活動 -d:顯示每一個塊設備的狀態 -e:設置顯示報告的結束時間 -f:從指定文件提取報告 -i:設狀態信息刷新的間隔時間 -P:報告每一個CPU的狀態 -R:顯示內存狀態 -u:顯示CPU利用率 -v:顯示索引節點,文件和其餘內核表的狀態 -w:顯示交換分區狀態 -x:顯示給定進程的狀態
[root@localhost ~]# sar -bash: sar: 未找到命令 [root@localhost ~]# yum install -y sysstat (首先須要安裝sar命令) 已加載插件:fastestmirror base ......(中間省略) [root@localhost ~]# sar (sar不加任何選項,會默認調用歷史系統軟件) Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年06月03日 _x86_64_ (2 CPU) [root@localhost ~]# sar -n DEV 1 5 (查看系統流量使用,每一秒顯示一次,顯示5次) Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年06月03日 _x86_64_ (2 CPU) 15時22分06秒 IFACE rxpck/s txpck/srxkB/stxkB/s rxcmp/s txcmp/s rxmcst/s 15時22分07秒lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15時22分07秒 ens33 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15時22分07秒 IFACE rxpck/s txpck/srxkB/stxkB/s rxcmp/s txcmp/s rxmcst/s 15時22分08秒lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15時22分08秒 ens33 1.00 1.00 0.06 0.38 0.00 0.00 0.00 15時22分08秒 IFACE rxpck/s txpck/srxkB/stxkB/s rxcmp/s txcmp/s rxmcst/s 15時22分09秒lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15時22分09秒 ens33 1.00 1.00 0.06 0.38 0.00 0.00 0.00 15時22分09秒 IFACE rxpck/s txpck/srxkB/stxkB/s rxcmp/s txcmp/s rxmcst/s 15時22分10秒lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15時22分10秒 ens33 1.00 1.00 0.06 0.38 0.00 0.00 0.00 15時22分10秒 IFACE rxpck/s txpck/srxkB/stxkB/s rxcmp/s txcmp/s rxmcst/s 15時22分11秒lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15時22分11秒 ens33 1.00 1.00 0.06 0.38 0.00 0.00 0.00 平均時間: IFACE rxpck/s txpck/srxkB/stxkB/s rxcmp/s txcmp/s rxmcst/s 平均時間:lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均時間: ens33 0.80 0.80 0.05 0.31 0.00 0.00 0.00 字段介紹 第一列:系統時間 第二列:網卡名稱 第三列:接收的數據包數量 (幾千爲一個合適值) 第四列:發送的數據包數量 第五列:接收的數據量 第六列:發送的數據量 後邊的不會對系統運行有很大影響 [root@localhost ~]# sar -q (查看系統負載) Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年06月03日 _x86_64_ (2 CPU) 15時10分02秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 15時20分01秒 0 111 0.00 0.01 0.05 0 平均時間: 0 111 0.00 0.01 0.05 0 [root@localhost ~]# sar -q -f /var/log/sa/sa03 (查看系統負載以及系統歷史文件) Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年06月03日 _x86_64_ (2 CPU) 15時10分02秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 15時20分01秒 0 111 0.00 0.01 0.05 0 平均時間: 0 111 0.00 0.01 0.05 0 [root@localhost ~]# sar -n DEV -f /var/log/sa/sa03 Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年06月03日 _x86_64_ (2 CPU) 15時10分02秒 IFACE rxpck/s txpck/srxkB/stxkB/s rxcmp/s txcmp/s rxmcst/s 15時20分01秒lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15時20分01秒 ens33 0.06 0.06 0.00 0.00 0.00 0.00 0.00 平均時間:lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均時間: ens33 0.06 0.06 0.00 0.00 0.00 0.00 0.00 [root@localhost ~]# sar -b (產看磁盤負載) Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年06月03日 _x86_64_ (2 CPU) 15時10分02秒 tps rtps wtps bread/s bwrtn/s 15時20分01秒 0.04 0.00 0.04 0.00 0.56 平均時間: 0.04 0.00 0.04 0.00 0.56 [root@localhost ~]# ls /var/log/sa sa03 (sa03不是一個二進制文件,不能夠用cat查看) [root@localhost ~]# ls /var/log/sa/sar18 (還會有sar18文件,會在明年生成)
nload命令用來即時監看網路狀態和各ip所使用的頻寬
nload默認的是eth0網卡,若是你想監測eth1網卡的流量,須要輸入:nload eth1
選項 -a:這個好像是所有數據的刷新時間週期,單位是秒,默認是300 -i:進入網卡的流量圖的顯示比例最大值設置,默認10240 kBit/s -m:不顯示流量圖,只顯示統計數據 -o:出去網卡的流量圖的顯示比例最大值設置,默認10240 kBit/s -t:顯示數據的刷新時間間隔,單位是毫秒,默認500 -u:設置右邊Curr、Avg、Min、Max的數據單位,默認是自動變的.注意大小寫單位不一樣 -U:設置右邊Ttl的數據單位,默認是自動變的.注意大小寫單位不一樣(與-u相同)
[root@localhost ~]# nload (能夠查看,第一行顯示網卡名稱,括號內顯示說明有兩個網卡,能夠按左右的方向鍵控制查看) Device ens33 [192.168.1.131] (1/2): ============================================================================================================================================================================================ Incoming: Curr: 944.00 Bit/s Avg: 968.00 Bit/s Min: 880.00 Bit/s Max: 1.84 kBit/s Ttl: 7.50 MByte Outgoing: Curr: 9.54 kBit/s Avg: 9.52 kBit/s Min: 3.75 kBit/s Max: 10.23 kBit/s Ttl: 2.12 MByte
iosatat和iotop命令:監控磁盤
使用iostat命令,首先要進行安裝,安裝sar命令的時候的安裝包也是iostat命令的安裝包 [root@localhost ~]# iostat -x Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年06月03日 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.040.000.090.050.00 99.81 Device: rrqm/s wrqm/s r/s w/srkB/swkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.02 0.32 0.21 10.93 5.65 61.56 0.01 17.9 57.54 33.78 3.04 0.16 sdb 0.00 0.00 0.00 0.00 0.12 0.00 47.27 0.00 0.17 0.17 0.00 0.15 0.00 scd0 0.00 0.00 0.00 0.00 0.06 0.00 114.22 0.00 0.56 0.56 0.00 0.33 0.00 主要關注:%util列,這一列表示磁盤有多少時間使用CPU的百分比,若是數字很大磁盤很忙
[root@localhost ~]# iotop -bash: iotop: 未找到命令 [root@localhost ~]# yum install -y iotop (首先要安裝該命令) 已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.sohu.com * epel: mirrors.ustc.edu.cn ......(中間省略) 已安裝: iotop.noarch 0:0.6-2.el7 完畢! [root@localhost ~]# iotop (會動態顯示磁盤使用狀況,io會按照大小排序) 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 1024 be/4 root0.00 B/s0.00 B/s 0.00 % 0.00 % -bash 1 be/4 root0.00 B/s0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 21 2 be/4 root0.00 B/s0.00 B/s 0.00 % 0.00 % [kthreadd]
free命令能夠顯示當前系統未使用的和已使用的內存數目,還能夠顯示被內核使用的內存緩衝區
選項 -b 以Byte爲單位顯示內存使用狀況 -k 以KB爲單位顯示內存使用狀況 -m 以MB爲單位顯示內存使用狀況 -o 不顯示緩衝區調節列 -s 持續觀察內存使用情況 -t 顯示內存總和列 -V 顯示版本信息
[root@localhost ~]# free (查看內存狀況) total used free shared buff/cache available Mem: 1008176 121420 562760 6892 323996 702944 Swap: 2047996 0 2047996 [root@localhost ~]# free -m (以MB爲單位顯示內存使用狀況) total used free shared buff/cache available Mem: 984 118 549 6 316 686 Swap: 1999 0 1999 [root@localhost ~]# free -h (自動計算以合適的單位顯示內存大小) total used free shared buff/cache available Mem: 984M 118M 549M 6.7M 316M 686M Swap: 2.0G 0B 2.0G
total: 內存總數 used: 已經使用的內存數 free: 空閒的內存數 shared: 當前已經廢棄不用 buffers Buffer:緩存內存數 cached Page: 緩存內存數
total=used+free+buff/cache
available包含free和buff/cache剩餘的空間
ps命令用於報告當前系統的進程狀態。能夠搭配kill指令隨時中斷、刪除沒必要要的程序
選項 -a :顯示全部的容器,包括未運行的 -f :根據條件過濾顯示的內容 -l :顯示最近建立的容器 -n :列出最近建立的n個容器 -q :靜默模式,只顯示容器編號 -s :顯示總的文件大小 --format : 指定返回值的模板文件 --no-trunc : 不截斷輸出
[root@localhost ~]# ps aux (能夠查看全部進程) USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 128208 6856 ?Ss 11:02 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 ......(中間省略) root 1557 4.0 0.1 151104 1844 pts/0R+ 17:53 0:00 ps aux [root@localhost ~]# ps aux |grep nginx (查看某個進程是否正在運行) root 1559 0.0 0.0 112720 980 pts/0S+ 17:53 0:00 grep --color=auto nginx [root@localhost ~]# ps -elf (與ps aux的效果同樣,均可以查看所有進程) F S UIDPID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S root 1 0 0 80 0 - 32052 ep_pol 11:02 ?00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 ......(中間省略) 1 R root 1556 2 0 80 0 - 0 - 17:50 ?00:00:00 [kworker/1:2] 0 R root 1561 1045 0 80 0 - 37776 - 17:53 pts/000:00:00 ps -elf
USER:該進程屬於哪一個使用者帳號的 PID :該進程的號碼 (此號碼能夠用於殺死一個進程:kill 進程PID或者查看一個非法進程的目錄:ls -l /proc/進程PID) %CPU:該進程使用掉的 CPU 資源百分比 %MEM:該進程所佔用的物理內存百分比 VSZ :該進程使用掉的虛擬內存量 (Kbytes) RSS :該進程佔用的固定的內存量 (Kbytes) TTY :該進程是在哪一個終端機上面運做,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若爲 pts/0 的,則表示爲由網絡鏈接進主機的程序。 STAT:該程序目前的狀態,主要的狀態有 START:該進程被觸發啓動的時間 TIME :該進程實際使用 CPU 運做的時間 COMMAND:該程序的實際指令
[root@localhost ~]# vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si sobibo in cs us sy id wa st 2 0 0 562792 2076 32206400 4 2 27 23 0 0 100 0 0 0 0 0 562668 2076 32206400 0 0 54 44 0 0 100 0 0 0 0 0 562652 2076 32206400 0 0 51 42 0 1 100 0 0 ^Z [1]+ 已中止 vmstat 1 [root@localhost ~]# ps aux |grep vmstat (此種進程不會耗費過多的CPU資源) root 1585 0.2 0.1 148356 1356 pts/0T18:05 0:00 vmstat 1 root 1587 0.0 0.0 112720 984 pts/0S+ 18:05 0:00 grep --color=auto vmstat
[root@ma-1 ~]# ps -C sshd (-C後跟進程名稱) PID TTY TIME CMD 904 ?00:00:00 sshd 1047 ?00:00:00 sshd [root@ma-1 ~]# ps --no-heading -C sshd (--no-heading能夠去除表頭信息) 904 ?00:00:00 sshd 1047 ?00:00:00 sshd [root@ma-1 ~]# ps --no-heading -C sshd | wc -l (在shell腳本中可使用) 2
netstat命令是用來查看網絡狀態的
選項 -a或--all:顯示全部連線中的Socket -A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址 -c或--continuous:持續列出網絡狀態 -C或--cache:顯示路由器配置的快取信息 -e或--extend:顯示網絡其餘相關信息 -F或--fib:顯示FIB -g或--groups:顯示多重廣播功能羣組組員名單 -h或--help:在線幫助 -i或--interfaces:顯示網絡界面信息表單 -l或--listening:顯示監控中的服務器的Socket -M或--masquerade:顯示假裝的網絡連線 -n或--numeric:直接使用ip地址,而不經過域名服務器 -N或--netlink或--symbolic:顯示網絡硬件外圍設備的符號鏈接名稱 -o或--timers:顯示計時器 -p或--programs:顯示正在使用Socket的程序識別碼和程序名稱 -r或--route:顯示Routing Table -s或--statistice:顯示網絡工做信息統計表 -t或--tcp:顯示TCP傳輸協議的連線情況 -u或--udp:顯示UDP傳輸協議的連線情況 -v或--verbose:顯示指令執行過程 -V或--version:顯示版本信息 -w或--raw:顯示RAW傳輸協議的連線情況 -x或--unix:此參數的效果和指定"-A unix"參數相同 --ip或--inet:此參數的效果和指定"-A inet"參數相同
[root@localhost ~]# netstat -lnp (查看監聽端口) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 901/sshd tcp0 0 127.0.0.1:250.0.0.0:* LISTEN 1008/master tcp6 0 0 :::22 :::*LISTEN 901/sshd tcp6 0 0 ::1:25 :::*LISTEN 1008/master udp0 0 127.0.0.1:323 0.0.0.0:* 552/chronyd udp6 0 0 ::1:323 :::*552/chronyd raw6 0 0 :::58 :::*7 592/NetworkManager ......(中間省略) unix 2 [ ACC ] STREAM LISTENING 171051008/master public/pickup unix 2 [ ACC ] STREAM LISTENING 171091008/master public/cleanup [root@localhost ~]# netstat -an (查看系統的網絡鏈接情況) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp0 0 127.0.0.1:250.0.0.0:* LISTEN ......(中間省略) unix 3 [ ] DGRAM12251 unix 3 [ ] STREAM CONNECTED 17132 [root@localhost ~]# netstat -ltunp (只查看tcp和udp的監聽端口) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 901/sshd tcp0 0 127.0.0.1:250.0.0.0:* LISTEN 1008/master tcp6 0 0 :::22 :::*LISTEN 901/sshd tcp6 0 0 ::1:25 :::*LISTEN 1008/master udp0 0 127.0.0.1:323 0.0.0.0:* 552/chronyd udp6 0 0 ::1:323 :::*552/chronyd [root@localhost ~]# ss -an (此命令和netstat -lnp命令效果相差很少,能夠相互使用) Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port nl UNCONN 0 0 0:0* nl UNCONN 0 0 0:-662699440 * ......(中間省略) tcpLISTEN 0 128:::22 :::* tcpLISTEN 0 100 ::1:25 :::* [root@localhost ~]# netstat -lnp |grep -i lis (此命令能夠查看以lis開頭的文件。-i是爲了區分大小寫) tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 901/sshd tcp0 0 127.0.0.1:250.0.0.0:* LISTEN 1008/master tcp6 0 0 :::22 :::*LISTEN 901/sshd tcp6 0 0 ::1:25 :::*LISTEN 1008/master unix 2 [ ACC ] STREAM LISTENING 8233 1/systemd/run/systemd/journal/stdout ......(中間省略) unix 2 [ ACC ] STREAM LISTENING 171051008/master public/pickup unix 2 [ ACC ] STREAM LISTENING 171091008/master public/cleanup [root@localhost ~]# netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' (查看各類文件的數量) LISTEN 4 ESTABLISHED 1 (該文件表示有多少客戶端在於服務端通訊,該數值越大代表服務器越繁忙)
https://blog.csdn.net/qq_34022469/article/details/52728304 https://blog.csdn.net/a987073381/article/details/52206215
列出全部端口 (包括監聽和未監聽的)
netstat -a 列出全部端口 netstat -at 列出全部tcp端口 netstat -au 列出全部udp端口
列出全部處於監聽狀態的 Sockets
netstat -l 只顯示監聽端口 netstat -lt 只列出全部監聽 tcp 端口 netstat -lu 只列出全部監聽 udp 端口 netstat -lx 只列出全部監聽 UNIX 端口
顯示每一個協議的統計信息
netstat -s 顯示全部端口的統計信息 netstat -st 顯示TCP端口的統計信息 netstat -su 顯示UDP端口的統計信息
在netstat輸出中顯示 PID 和進程名稱
netstat -pt
1. 設置和刪除IP
ip addr add 192.168.10.10/24 dev eth0 ip addr show eth0 ip addr del 192.168.10.10/24 dev eth0
2. 路由相關設置
ip route show ip route add default via 192.168.10.1 ip route add 192.168.5.0/24 dev eth0 ip route del 192.168.10.1
另外用route命令來管理路由
(a)、網絡路由 # route add -net 192.168.1.0/24 gw 172.16.1.106 (b)、主機路由 # route add -host 192.168.1.110 gw 172.16.1.106 (c)、默認路由 # route add default gw 172.16.1.106 或 # route add -net 0.0.0.0 gw 172.16.1.106 (d)、刪除路由 # route del -host 192.168.1.110 # route del -net 192.168.1.0/24
3. 顯示網絡統計數據
ip -s link ip -s -s link ls eth0
4. 中止開啓網卡
ip link set eth0 down ip linke set eth0 up
5.更改網卡名字
ip link set ens37 name eth1
抓包工具:tcpdump
選項 -a: 嘗試將網絡和廣播地址轉換成名稱 -c<數據包數目>:收到指定的數據包數目後,就中止進行傾倒操做 -d: 把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標準輸出 -dd: 把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標準輸出 -ddd: 把編譯過的數據包編碼轉換成十進制數字的格式,並傾倒到標準輸出 -e: 在每列傾倒資料上顯示鏈接層級的文件頭 -f: 用數字顯示網際網絡地址 -F<表達文件>: 指定內含表達方式的文件 -i<網絡界面>: 使用指定的網絡截面送出數據包 -l: 使用標準輸出列的緩衝區 -n: 不把主機的網絡地址轉換成名字 -N: 不列出域名 -O: 不將數據包編碼最佳化 -p: 不讓網絡界面進入混雜模式 -q: 快速輸出,僅列出少數的傳輸協議信息 -r<數據包文件>:從指定的文件讀取數據包數據 -s<數據包大小>:設置每一個數據包的大小 -S: 用絕對而非相對數值列出TCP關聯數 -t: 在每列傾倒資料上不顯示時間戳記 -tt: 在每列傾倒資料上顯示未經格式化的時間戳記 -T<數據包類型>:強制將表達方式所指定的數據包轉譯成設置的數據包類型 -v: 詳細顯示指令執行過程 -vv: 更詳細顯示指令執行過程 -x: 用十六進制字碼列出數據包資料 -w<數據包文件>:把數據包數據寫入指定的文件
[root@localhost ~]# yum install -y tcpdump (安裝tcpdump命令) [root@localhost ~]# tcpdump -nn -i ens33 (對網卡名爲:ens33的網卡進行抓包) 20:25:22.943507 IP 192.168.1.1.49289 > 192.168.1.131.22: Flags [.], ack 2039140, win 7720, length 0 ......(中間省略) 20:25:22.944119 IP 192.168.1.131.22 > 192.168.1.1.49289: Flags [P.], seq 2039728:2039988, ack 365, win 291, length 260 第一列:系統時間 第二列:IP 第三列:原IP和原端口,後跟指定方向 第四列:進入的IP和端口 第五列:數據包信息 [root@localhost ~]# tcpdump -i ens33 (在不加-nn的狀況下顯示的再也不是IP而是主機名) 20:31:20.246608 IP 192.168.1.1.49289 > localhost.localdomain.ssh: Flags [.], ack 1795676, win 11338, length 0 ......(中間省略) 20:31:20.246769 IP 192.168.1.1.49289 > localhost.localdomain.ssh: Flags [P.], seq 313:365, ack 1795676, win 11338, length 52 [root@localhost ~]# tcpdump -nn -i ens33 port 80 (指定只須要抓該網卡下的80端口數據包) [root@localhost ~]# tcpdump -nn -i ens33 not port 22 (指定不須要抓該網卡下的22端口數據包) tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes ^C 0 packets captured 0 packets received by filter 0 packets dropped by kernel [root@localhost ~]# tcpdump -nn -i ens33 not port 22 and host 192.168.1.1 (指定不須要抓該網卡下的22端口數據包而且抓該192.168.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 ^[[Aqu20:34:04.806349 ARP, Request who-has 192.168.1.131 (00:0c:29:ec:44:82) tell 192.168.1.1, length 46 20:34:04.806377 ARP, Reply 192.168.1.131 is-at 00:0c:29:ec:44:82, length 28 iqqqquia^H^Z [2]+ 已中止 tcpdump -nn -i ens33 not port 22 and host 192.168.1.1 [root@localhost ~]# tcpdump -i ens33 -c 100 -w /tmp/1.cap (-c指定抓包的數量,-w指定抓包的路徑) [root@localhost ~]# yum install -y wireshark (安裝tshark命令) [root@localhost ~]# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e
https://blog.csdn.net/github_39069288/article/details/75670401
[root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.131 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::6aac:3e4d:6b3:73ee prefixlen 64 scopeid 0x20<link> ether 00:0c:29:ec:44:82 txqueuelen 1000 (Ethernet) RX packets 33800 bytes 27620379 (26.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 29772 bytes 7768190 (7.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 72 bytes 6256 (6.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 72 bytes 6256 (6.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig -a
[root@localhost ~]# ifdown ens33 && ifup ens33 成功斷開設備 'ens33'。 鏈接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/3)
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ (進入網卡配置文件目錄下) [root@localhost network-scripts]# ls ifcfg-ens33 ifdown-bnep ifdown-ipv6 ifdown-ppp ifdown-Team ifup ifup-eth ifup-isdn ifup-postifup-sit ifup-tunnel network-functions ifcfg-lo ifdown-eth ifdown-isdn ifdown-routes ifdown-TeamPort ifup-aliases ifup-ippp ifup-plip ifup-ppp ifup-Team ifup-wireless network-functions-ipv6 ifdown ifdown-ippp ifdown-post ifdown-sit ifdown-tunnelifup-bnep ifup-ipv6 ifup-plusb ifup-routes ifup-TeamPort init.ipv6-global [root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:1 (拷貝一份配置文件,命名爲:1,加\是爲了脫義:) [root@localhost network-scripts]# vi !$ (修改配置文件) vi ifcfg-ens33\:1 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33:1 (修改NAME、DEVICE字段值,分別加上:1) UUID=84285fdd-1036-410d-94b7-01c5a5b909a3 DEVICE=ens33:1 IPADDR=192.168.1.145 NETMASK=255.255.255.0 GATEWAY=192.168.1.2 [root@localhost network-scripts]# ifdown ens33 && ifup ens33 (斷開並從新鏈接網卡) 成功斷開設備 'ens33'。 鏈接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/8) [root@localhost network-scripts]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.131 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::6aac:3e4d:6b3:73ee prefixlen 64 scopeid 0x20<link> ether 00:0c:29:ec:44:82 txqueuelen 1000 (Ethernet) RX packets 34586 bytes 27689389 (26.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 30389 bytes 7863035 (7.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 (會發現多了一個虛擬網卡ens33:1) inet 192.168.1.145 netmask 255.255.255.0 broadcast 192.168.1.255 (此虛擬網卡能夠在Windowsping通) ether 00:0c:29:ec:44:82 txqueuelen 1000 (Ethernet) lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 96 bytes 8320 (8.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 96 bytes 8320 (8.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost network-scripts]# mii-tool ens33 ens33: negotiated 1000baseT-FD flow-control, link ok (當不顯示link ok時,用ethtool命令) [root@localhost 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 (顯示爲yes)
[root@localhost network-scripts]# hostnamectl set-hostname ma-1 (更改主機名命令) [root@localhost network-scripts]# cd ~ [root@localhost ~]# bash (更改完成在當前終端不會顯示,斷開或者才進入子shell發現變動) [root@ma-1 ~]# cat /etc/hostname (主機名配置文件) ma-1
[root@ma-1 ~]# cat /etc/resolv.conf (dns配置文件) # Generated by NetworkManager nameserver 119.29.29.29 [root@ma-1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 (更改網卡配置文件) TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=84285fdd-1036-410d-94b7-01c5a5b909a3 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.1.131 NETMASK=255.255.255.0 GATEWAY=192.168.1.2 DNS1=119.29.29.29 DNS2=8.8.8.8 (添加一個新的dns) [root@ma-1 ~]# ifdown ens33 && ifup ens33 (從新啓動網卡) 成功斷開設備 'ens33'。 鏈接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/9) [root@ma-1 ~]# cat /etc/resolv.conf (查看已添加一個新的dns) # Generated by NetworkManager nameserver 119.29.29.29 nameserver 8.8.8.8 [root@ma-1 ~]# vim /etc/resolv.conf(臨時更改dns文件配置) # Generated by NetworkManager nameserver 119.29.29.29 nameserver 8.8.8.8
[root@ma-1 ~]# cat /etc/hosts (查看該配置文件)) 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@ma-1 ~]# vi !$ vi /etc/hosts [root@ma-1 ~]# ping www.qq123.com (ping該網址,IP是202.91.250.93) PING www.qq123.com (202.91.250.93) 56(84) bytes of data. 64 bytes from 202.91.250.93 (202.91.250.93): icmp_seq=1 ttl=128 time=50.9 ms 64 bytes from 202.91.250.93 (202.91.250.93): icmp_seq=3 ttl=128 time=50.8 ms ^C --- www.qq123.com ping statistics --- 3 packets transmitted, 2 received, 33% packet loss, time 2004ms rtt min/avg/max/mdev = 50.880/50.890/50.901/0.225 ms [root@ma-1 ~]# vi /etc/hosts (修改該網址的訪問IP) 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.131 www.qq123.com www.qq.com www.baidu.com (一個IP支持多個域名) 127.0.0.1 www.qq.com [root@ma-1 ~]# ping www.qq123.com (IP已被更改) PING www.qq123.com (192.168.1.131) 56(84) bytes of data. 64 bytes from www.qq123.com (192.168.1.131): icmp_seq=1 ttl=64 time=0.067 ms 64 bytes from www.qq123.com (192.168.1.131): icmp_seq=2 ttl=64 time=0.083 ms 64 bytes from www.qq123.com (192.168.1.131): icmp_seq=3 ttl=64 time=0.379 ms ^C --- www.qq123.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 0.067/0.176/0.379/0.143 ms [root@ma-1 ~]# ping www.baidu.com (次訪問的域名也是IP) PING www.qq123.com (192.168.1.131) 56(84) bytes of data. 64 bytes from www.qq123.com (192.168.1.131): icmp_seq=1 ttl=64 time=0.441 ms 64 bytes from www.qq123.com (192.168.1.131): icmp_seq=2 ttl=64 time=0.086 ms ^C --- www.qq123.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.086/0.263/0.441/0.178 ms [root@ma-1 ~]# ping www.qq.com (當一個IP對應多個IP以最後一個爲準) PING www.qq123.com (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.076 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.087 ms ^C --- www.qq123.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.076/0.081/0.087/0.010 ms![image](https://note.youdao.com/favicon.ico)