w命令查看的是系統總體上的負載。linux
# w 10:42:38 up 7 min, 1 user, load average: 0.16, 0.08, 0.06 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.100.1 10:36 6.00s 0.04s 0.02s w
上面,ios
第1行從左到右顯示的信息依次爲:時間、系統運行時間、登陸用戶數、平均負載;
第2行顯示的是當前登陸的用戶及其登陸地址等。web
uptime命令也能夠顯示上面第1行的內容:shell
# uptime 11:30:06 up 54 min, 1 user, load average: 0.00, 0.01, 0.05
重點關注load average:數據庫
第1個數值表示1分鐘內系統的平均負載值(該值越大說明服務器壓力越大)
第2個數值表示5分鐘內系統的平均負載值
第3個數值表示15分鐘內系統的平均負載值vim
通常狀況下,第1個值不超過服務器的CPU數量就沒問題。緩存
查看服務器的CPU數量:bash
# cat /proc/cpuinfo
或者這樣查看:服務器
[root@localhost ~]# grep -c 'precessor' /proc/cpuinfo0
在linux中,服務器有2*n個CPU(n爲單顆物理CPU上有n核)。若是n是4,則查看/proc/cpuinfo這個文件會顯示8段相似信息,最後一段的processor後面會顯示爲7。網絡
vmstat命令顯示的結果分爲6部分:procs、memory、swap、io、system和cpu。
# vmstatprocs -----------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 1556704 2076 168336 0 0 12 1 20 16 0 0 100 0 0
procs——顯示進程的相關信息
r(run):表示運行或等待CPU時間片的進程數;
b(block):表示等待資源的進程數,資源指的是I/O、內存等。
memory——顯示內存的相關信息
swpd:表示切換到交換分區中的內存數量,單位爲KB,該值波動時說明內存不足;
free:表示當前空閒的內存數量,單位爲KB;
buff:表示(即將寫入磁盤的)緩衝大小,單位爲KB;
cache:表示(從磁盤讀取的)緩存大小,單位爲KB。
swap——顯示內存的交換狀況
si:表示由交換區寫入內存的數據量,單位爲KB;
so:表示由內存寫入交換區的數據量,單位爲KB。
io——顯示內存的交換狀況
bi:表示從塊設備讀取數據的量(磁盤→內存),單位爲KB;
bo:表示從塊設備寫入數據的量(內存→磁盤),單位爲KB。
system——顯示採集間隔內發生的中斷次數
in:表示在某一時間間隔內觀測到的每秒設備的中斷次數;
cd:表示每秒產生的上下文切換次數。
cpu——顯示CPU的使用狀態
us:表示用戶下所花費CPU的時間百分比(一般us<=10比較合適);
sy:表示系統花費CPU的時間百分比(sy與us呈正相關);
id:表示CPU處於空閒狀態的時間百分比;
wa:表示I/O等待所佔用CPU的時間百分比;
st:表示被偷走的CPU所佔的時間百分比(通常爲0)。
us + sy + id = 100%
重點關注r、b、si、so、bi、bo、us和wa這幾列信息。
vmstat n m表示動態輸出,每n秒輸出一次,共輸出m次。
# vmstat 1 5procs -----------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 1556356 2076 168376 0 0 6 0 13 11 0 0 100 0 0 0 0 0 1556356 2076 168376 0 0 0 0 84 61 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 81 70 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 62 55 0 0 100 0 0 1 0 0 1556340 2076 168376 0 0 0 0 80 73 0 0 100 0 0
能夠看到,vmstat 1 5表示每1秒輸出一次,共輸出5次。
# vmstat 1procs -----------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 1556340 2076 168376 0 0 6 0 13 11 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 85 69 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 68 60 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 60 54 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 77 68 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 67 61 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 69 62 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 73 61 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 67 62 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 73 68 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 67 60 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 60 53 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 69 62 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 68 61 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 72 63 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 48 44 40 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 29 22 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 41 29 0 0 100 0 0 ^Z[1]+ 已中止 vmstat 1
vmstat 1表示每1秒輸出一次,且一直輸出,除非按Ctrl+Z停止或Ctrl+C結束。
top命令用於動態監控進程所佔的系統資源,每3秒刷新一次,默認把佔用系統資源(CPU、內存、磁盤I/O等)最高的進程放在最上面。
top - 14:17:19 up 3:41, 1 user, load average: 0.00, 0.02, 0.05 Tasks: 113 total, 2 running, 111 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 : 1865308 total, 1370480 free, 139216 used, 355612 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1532752 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1811 root 20 0 161944 2200 1548 R 0.3 0.1 0:00.10 top 1 root 20 0 193492 6592 4128 S 0.0 0.4 0:01.99 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.03 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 0:00.61 kworker/u256:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.37 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:00.48 rcu_sched 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain 11 root rt 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/0 12 root rt 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/1 13 root rt 0 0 0 0 S 0.0 0.0 0:00.31 migration/1 14 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/1 15 root 20 0 0 0 0 S 0.0 0.0 0:00.34 kworker/1:0 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H 17 root rt 0 0 0 0 S 0.0 0.0 0:00.10 watchdog/2
上面左上角顯示CPU、內存、交換區的使用狀況,右邊顯示任務、負載、開機時間,下面就是進程實時情況。
top 查看進程使用資源狀況;
top -c 顯示詳細的進程信息;
top -bn1 靜態顯示全部進程。
# top -bn1 -c | head -15top - 14:24:49 up 3:49, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 114 total, 1 running, 113 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 1.6 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1865308 total, 1369280 free, 140300 used, 355728 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1531624 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1823 root 20 0 161868 2168 1600 R 6.2 0.1 0:00.01 top -bn1 -c 1 root 20 0 193492 6592 4128 S 0.0 0.4 0:02.04 /usr/lib/systemd/systemd --switched-root --syste+ 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] 6 root 20 0 0 0 0 S 0.0 0.0 0:00.62 [kworker/u256:0] 7 root rt 0 0 0 0 S 0.0 0.0 0:00.37 [migration/0] 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh]
q 退出top 1 顯示全部核CPU M 按內存使用從高到低排序 P 按CPU使用從高到低排序
top只支持鍵盤操做,顯示單調,htop是Linux系統下一個基本文本模式的、交互式的進程查看器,主要用於控制檯或shell中,能夠替代top,是top的高級版本。
1. 快速查看關鍵性能統計數據,如CPU(多核佈局)、內存/交換使用; 2. 能夠橫向或縱向滾動瀏覽進程列表,以查看全部的進程和完整的命令行; 3. 殺掉進程時能夠直接選擇而不須要輸入進程號; 4. 經過鼠標操做條目; 5. 比top啓動得更快。
# yum install -y htop
F1 查看htop使用說明 F2 設置 F3 搜索進程 F4 過濾器,按關鍵字搜索 F5 顯示樹形結構 F6 選擇排序方式 F7 減小nice值,這樣就能夠提升對應進程的優先級 F8 增長nice值,這樣能夠下降對應進程的優先級 F9 殺掉選中的進程 F10 退出htop
-C --no-color 使用一個單色的配色方案 -d --delay=DELAY 設置延遲更新時間,單位秒 -h --help 顯示htop 命令幫助信息 -u --user=USERNAME 只顯示一個給定的用戶的過程 -p --pid=PID,[,PID,PID...] 只顯示給定的PIDs -s --sort-key=COLUMN 依此列來排序 -v --version 顯示版本信息
上下鍵或PgUP/PgDn 選定想要的進程,左右鍵或Home, End 移動字段,固然也能夠直接用鼠標選定進程; Space 標記/取消標記一個進程。命令能夠做用於多個進程,例如 "kill",將應用於全部已標記的進程 U 取消標記全部進程 s 選擇某一進程,按s:用strace追蹤進程的系統調用 l 顯示進程打開的文件: 若是安裝了lsof,按此鍵能夠顯示進程所打開的文件(小寫l) I 倒轉排序順序,若是排序是正序的,則反轉成倒序的,反之亦然(大寫i) +, - 在樹形模式下,展開或摺疊子樹 a (在有多處理器的機器上) 設置 CPU affinity: 標記一個進程容許使用哪些CPU u 顯示特定用戶進程 M 按Memory 使用排序 P 按CPU 使用排序 T 按Time+ 使用排序 F 跟蹤進程: 若是排序順序引發選定的進程在列表上處處移動,讓選定條跟隨該進程。這對監視一個進程很是有用:經過這種方式,你可讓一個進程在屏幕上一直可見。使用方向鍵會中止該功能。 K 顯示/隱藏內核線程 H 顯示/隱藏用戶線程 Ctrl-L 刷新
sar命令能夠監控平均負載、網卡流量、磁盤狀態、內存使用等系統狀態,能夠顯示歷史信息,能夠顯示當天從零時開始到當前時刻的系統狀態信息,每10分鐘記錄一次。
# yum install -y sysstat
初次使用sar會報錯,這是由於sar尚未生成相應的數據庫文件,它的數據庫文件保存在/var/log/sa目錄下。
# sarLinux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10時35分41秒 LINUX RESTART 10時40分01秒 CPU %user %nice %system %iowait %steal %idle 10時50分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 11時00分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 11時10分01秒 all 0.00 0.00 0.03 0.05 0.00 99.92 11時20分01秒 all 0.00 0.00 0.01 0.00 0.00 99.98 11時30分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 11時40分01秒 all 0.00 0.00 0.01 0.01 0.00 99.98 11時50分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 12時00分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 12時10分01秒 all 0.00 0.00 0.01 0.00 0.00 99.98 12時20分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 12時30分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 12時40分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 12時50分01秒 all 0.00 0.00 0.01 0.00 0.00 99.98 13時00分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 13時10分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 13時20分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 13時30分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 13時40分01秒 all 0.01 0.00 0.02 0.00 0.00 99.97 13時50分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 14時00分01秒 all 0.01 0.00 0.02 0.00 0.00 99.97 14時10分01秒 all 0.00 0.00 0.01 0.00 0.00 99.98 14時20分01秒 all 0.10 0.00 0.22 0.28 0.00 99.41 14時20分01秒 CPU %user %nice %system %iowait %steal %idle 14時30分01秒 all 0.00 0.00 0.01 0.01 0.00 99.98 14時40分01秒 all 0.01 0.00 0.04 0.00 0.00 99.94 14時50分01秒 all 0.01 0.00 0.06 0.00 0.00 99.93 平均時間: all 0.01 0.00 0.03 0.01 0.00 99.95
# sar -n DEV | head -15Linux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10時35分41秒 LINUX RESTART 10時40分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 10時50分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10時50分01秒 ens33 0.12 0.12 0.01 0.01 0.00 0.00 0.00 11時00分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時00分01秒 ens33 0.09 0.11 0.01 0.01 0.00 0.00 0.00 11時10分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時10分01秒 ens33 0.38 0.26 0.03 0.03 0.00 0.00 0.00 11時20分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時20分01秒 ens33 0.15 0.12 0.01 0.01 0.00 0.00 0.00 11時30分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時30分01秒 ens33 0.06 0.07 0.00 0.00 0.00 0.00 0.00
上面,
IFACE 這一列表示設備名稱 rxpck/s 這一列表示每秒進入收取的包的數量 txpck/s 這一列表示每秒發送出去的包的數量 rxKB/s 這一列表示每秒收取的數據量(單位爲KB) txKB/s 這一列表示每秒發送的數據量(單位爲KB)
# sar -n DEV -f /var/log/sa/sa09 | head -15Linux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10時35分41秒 LINUX RESTART 10時40分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 10時50分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10時50分01秒 ens33 0.12 0.12 0.01 0.01 0.00 0.00 0.00 11時00分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時00分01秒 ens33 0.09 0.11 0.01 0.01 0.00 0.00 0.00 11時10分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時10分01秒 ens33 0.38 0.26 0.03 0.03 0.00 0.00 0.00 11時20分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時20分01秒 ens33 0.15 0.12 0.01 0.01 0.00 0.00 0.00 11時30分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時30分01秒 ens33 0.06 0.07 0.00 0.00 0.00 0.00 0.00
使用-f選項能夠查看某一天的網卡流量歷史,後面跟文件名(以sa開頭的文件,不能直接cat),sar的庫文件在/var/log/sa目錄下,還有sar開頭的文件,能夠直接cat。
# sar -q | head -15Linux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10時35分41秒 LINUX RESTART 10時40分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 10時50分01秒 0 130 0.00 0.02 0.05 0 11時00分01秒 0 129 0.00 0.01 0.05 0 11時10分01秒 0 131 0.01 0.02 0.05 0 11時20分01秒 0 130 0.00 0.01 0.05 0 11時30分01秒 0 129 0.00 0.01 0.05 0 11時40分01秒 0 130 0.00 0.01 0.05 0 11時50分01秒 0 130 0.00 0.01 0.05 0 12時00分01秒 0 129 0.00 0.01 0.05 0 12時10分01秒 0 131 0.00 0.01 0.05 0 12時20分01秒 0 131 0.00 0.01 0.05 0
# sar -b | head -15Linux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10時35分41秒 LINUX RESTART 10時40分01秒 tps rtps wtps bread/s bwrtn/s 10時50分01秒 0.05 0.00 0.05 0.12 0.54 11時00分01秒 0.06 0.02 0.04 0.59 0.57 11時10分01秒 0.88 0.48 0.40 14.22 9.21 11時20分01秒 0.04 0.00 0.03 0.11 0.36 11時30分01秒 0.05 0.00 0.05 0.00 0.47 11時40分01秒 0.05 0.00 0.05 0.04 0.70 11時50分01秒 0.06 0.00 0.06 0.00 0.70 12時00分01秒 0.02 0.00 0.02 0.00 0.29 12時10分01秒 0.07 0.00 0.07 0.00 0.84 12時20分01秒 0.04 0.00 0.04 0.00 0.40
sar雖然能夠查看網卡流量,但不夠直觀,而nload很是直觀
# yum install -y epel-release;yum install -y nload
nload動態顯示,按向右箭頭能夠其它網卡的網絡流量。
輸出結果分爲兩個部分,Incoming 爲進入網卡的流量,Outgoing 爲網卡出去的流量,通常關注 Curr 那行數據,其單位也能夠動態自動調整。
iostat -x和iotop均可以查看磁盤使用狀況。
# iostat -xLinux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 0.01 0.00 0.04 0.04 0.00 99.91 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.01 0.42 0.12 13.15 4.38 65.53 0.01 13.35 10.98 21.69 4.82 0.26 scd0 0.00 0.00 0.00 0.00 0.06 0.00 114.22 0.00 43.78 43.78 0.00 43.22 0.00
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 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-root --system --deserialize 22 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 5 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 % [kworker/u256:0] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 10 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [lru-add-drain] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/1] 13 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1] 14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/1] 15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/1:0] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/1:0H]
free命令能夠查看當前系統的總內存大小以及使用內存的狀況。
# free total used free shared buff/cache available Mem: 1865308 139724 1369236 9692 356348 1532092 Swap: 4194300 0 4194300
上面,
total 內存總大小 used 真正使用的內存大小 free 剩餘物理內存大小 shared 共享內存大小 buff/cache 分配給buffer和cache的內存,即緩衝/緩存(數據通過CPU計算,即將寫入磁盤,用到的內存爲buffer;CPU要計算時,須要把數據從磁盤中讀出來,臨時放入內存中,用到的內存是cache) available 系統可以使用的內存大小,包含free和buffer/cache剩餘部分 total = used + free + buff/cache
free命令能夠加-m和-g選項,分別以MB和GB爲單位顯示內存的使用情況,也支持-h選項。
ps命令專門查看系統進程。
# ps PID TTY TIME CMD 1253 pts/0 00:00:00 bash 1939 pts/0 00:00:00 ps
# ps aux | head -15USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 193492 6592 ? Ss 10:35 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0.0 0.0 0 0 ? S 10:35 0:00 [kthreadd]root 3 0.0 0.0 0 0 ? S 10:35 0:00 [ksoftirqd/0]root 5 0.0 0.0 0 0 ? S< 10:35 0:00 [kworker/0:0H]root 6 0.0 0.0 0 0 ? S 10:35 0:00 [kworker/u256:0]root 7 0.0 0.0 0 0 ? S 10:35 0:00 [migration/0]root 8 0.0 0.0 0 0 ? S 10:35 0:00 [rcu_bh]root 9 0.0 0.0 0 0 ? R 10:35 0:00 [rcu_sched]root 10 0.0 0.0 0 0 ? S< 10:35 0:00 [lru-add-drain]root 11 0.0 0.0 0 0 ? S 10:35 0:00 [watchdog/0]root 12 0.0 0.0 0 0 ? S 10:35 0:00 [watchdog/1]root 13 0.0 0.0 0 0 ? S 10:35 0:00 [migration/1]root 14 0.0 0.0 0 0 ? S 10:35 0:00 [ksoftirqd/1]root 15 0.0 0.0 0 0 ? S 10:35 0:00 [kworker/1:0]
上面,
PID 表示進程的ID,kill使用時後面須要跟上PID STAT 進程的狀態,主要有如下幾種: D 不能中斷進程(一般爲IO) R 正在運行中的進程 S 已經中斷的進程 Z 殭屍進程,殺不掉、打不死的進程(主進程意外丟失) < 高優先級進程 N 低優先級進程 s 主進程 l 多線程進程 - \+ 在前臺運行的進程
ps連同管道符一塊兒使用,能夠查看某個進程或它的數量(grep -c)。
# ps aux | grep sshdroot 923 0.0 0.2 112796 4296 ? Ss 10:36 0:00 /usr/sbin/sshd -D root 1249 0.0 0.2 158800 5540 ? Ss 10:36 0:00 sshd: root@pts/0 root 1974 0.0 0.0 112724 984 pts/0 S+ 16:02 0:00 grep --color=auto sshd
netstat命令用來查看網絡鏈接情況、系統所開放端口、路由表等信息。
# netstat -lnp | head -15Active 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 923/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1152/master tcp6 0 0 :::22 :::* LISTEN 923/sshd tcp6 0 0 ::1:25 :::* LISTEN 1152/master udp 0 0 127.0.0.1:323 0.0.0.0:* 571/chronyd udp6 0 0 ::1:323 :::* 571/chronyd raw6 0 0 :::58 :::* 7 595/NetworkManager Active UNIX domain sockets (only servers)Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 19801 1152/master private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 19804 1152/master private/rewrite unix 2 [ ACC ] STREAM LISTENING 19807 1152/master private/bounce unix 2 [ ACC ] STREAM LISTENING 19810 1152/master private/defer
netstat -lnp查看當前系統啓動了哪些端口(netstat -ltnp查看tcp端口;netstat -lunp查看udp端口)。
# netstat -an | head -20Active 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 192.168.100.128:22 192.168.100.1:51990 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 :::* raw6 0 0 :::58 :::* 7 Active UNIX domain sockets (servers and established)Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 19801 private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 19804 private/rewrite unix 2 [ ACC ] STREAM LISTENING 19807 private/bounce unix 2 [ ACC ] STREAM LISTENING 19810 private/defer unix 2 [ ACC ] STREAM LISTENING 19852 private/discard unix 2 [ ACC ] STREAM LISTENING 19858 private/virtual unix 2 [ ACC ] STREAM LISTENING 17445 /run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 19813 private/trace
netstat -an |awk '/^tcp/{+=sta[$NF]}END{for(key in sta) print key,"\t",sta[key]}'**查看tcp每一種狀態出現的數量。
當初步斷定服務器上有流量***時,使用抓包工具來抓取數據包能夠知道的IP。
# yum install -y tcpdump
-nn 做用是讓第3列和第4列顯示成「ip+端口號」的形式,不加-nn則顯示「主機名+服務名」 -i 指定設備名稱 -c 指定抓包數量,抓夠了自動退出 -w 指定保存位置 -r 讀取抓到的包內容 tcp 指定抓tcp的包
# tcpdump -nn -i ens33 -c 10tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 16:29:43.007506 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 1203060315:1203060527, ack 4165463380, win 251, length 212 16:29:43.008347 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 212:408, ack 1, win 251, length 196 16:29:43.008424 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 408:572, ack 1, win 251, length 164 16:29:43.008491 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 572:736, ack 1, win 251, length 164 16:29:43.008555 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 736:900, ack 1, win 251, length 164 16:29:43.008620 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 900:1064, ack 1, win 251, length 164 16:29:43.008684 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 1064:1244, ack 1, win 251, length 180 16:29:43.008747 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 1244:1424, ack 1, win 251, length 180 16:29:43.008823 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 1424:1604, ack 1, win 251, length 180 16:29:43.009124 IP 192.168.100.1.51990 > 192.168.100.128.22: Flags [.], ack 1604, win 2053, length 0 10 packets captured 11 packets received by filter 0 packets dropped by kernel
# yum install -y wireshark
# 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"
ifconfig命令相似於Windows的ipconfig命令,後面不跟任何選項和參數時,只顯示當前網卡IP的相關信息(如子網掩碼、網關等)。
# yum install -y net-tools
# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.128 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::b76:caa8:3d7c:71bc prefixlen 64 scopeid 0x20<link> ether 00:0c:29:e4:fc:a5 txqueuelen 1000 (Ethernet) RX packets 12004 bytes 6150452 (5.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16570 bytes 4217661 (4.0 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 1000 (Local Loopback) RX packets 78 bytes 6856 (6.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 78 bytes 6856 (6.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
設置(修改)IP:vim /etc/sysconfig/network_scripts/ifcfg-ens33(這裏以ens33爲網卡名爲例)。
# ifdown 網卡名
# ifup 網卡名
# ifdown 網卡名; ifup 網卡名(遠程時這樣沒法重啓,會斷開)或# ifdown 網卡名 && ifup 網卡名或# systemctl restart network
# cd /etc/sysconfig/network-scripts/# cp ifcfg-ens33 ifcfg-ens33:1# vim ifcfg-ens33:1TYPE=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 UUID=d71e4905-fa6f-4d09-8533-714dfb0b9e5d DEVICE=ens33:1 ONBOOT=yes IPADDR=192.168.100.130 NETMASK=255.255.255.0 GATEWAY=192.168.100.2 DNS1=8.8.8.8 DNS2=4.2.2.2
# systemctl restart network# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.128 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::b76:caa8:3d7c:71bc prefixlen 64 scopeid 0x20<link> ether 00:0c:29:e4:fc:a5 txqueuelen 1000 (Ethernet) RX packets 12802 bytes 6219046 (5.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 17083 bytes 4281925 (4.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.130 netmask 255.255.255.0 broadcast 192.168.100.255 ether 00:0c:29:e4:fc:a5 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 1000 (Local Loopback) RX packets 90 bytes 7912 (7.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 90 bytes 7912 (7.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# mii-tool ens33ens33: negotiated 1000baseT-FD flow-control, link ok
# ethtool ens33Settings 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 Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported 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
hostname(重啓後失效);
hostnamectl set-hostname(重啓後不變)。
vi /etc/resolv.conf(臨時修改);
修改網卡配置文件(永久修改)。