任務列表:
10.1 使用w查看系統負載
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
10.6 監控io性能
10.7 free命令
10.8 ps命令
10.9 查看網絡狀態
10.10 linux下抓包
10.11 Linux網絡相關
擴展
tcp三次握手四次揮手(重點) http://www.doc88.com/p-9913773324388.html
tshark幾個用法:http://www.aminglinux.com/bbs/thread-995-1-1.htmlhtml
三次握手小例子 https://docs.qq.com/doc/DR3dISkdERGtac2VDlinux
ip命令使用ios
1. 設置和刪除IPweb
ip addr add 192.168.10.10/24 dev eth0shell
ip addr show eth0express
ip addr del 192.168.10.10/24 dev eth0windows
2. 路由相關設置centos
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
3. 中止開啓網卡
ip link set eth0 down
ip linke set eth0 up
更改網卡名字
ip link set ens37 name eth1
永久保存:https://blog.csdn.net/jyusun/article/details/71513086
w/uptime 查看系統負載
第一行顯示系統時間、 up系統當前運行時間、目前登陸用戶(能夠從下面看到,tty1終端登錄,pts/0遠程登錄)
系統負載 load average: 0.08, 0.14, 0.11
這三個數字分別表示1分鐘、5分鐘、15分鐘以內,系統的負載值分別是多少,單位時間段內,使用cpu的活動的進程有多少個
1分鐘內使用cpu的活動的進程有多少個
負載值低時,表明系統目前負載較小,要看有幾顆邏輯CPU,不是物理CPU。
FROM:表示從哪裏來
L0GIN@:表示登錄時間
IDLE:空閒了多長時間
JCPU、PCPU:使用了CPU的時間
WHAT:命令
w
uptime 和w命令的第一行相同,用w便可
cat /proc/cpuinfo 查看CPU信息
查看processor的值,即表明本機的cpu核數,若是是0,表明有1顆,若是是1,表明有2顆,以此類推
查看physical id 數,表明本機物理cpu,若是是1,表明有2個物理cpu
若是cpu核數是8,即processor爲7時,那麼負載值不該大於8,均可以正常運行,5分鐘平均負載和15分鐘平均負載同理,若是負載大於8,那麼表示cpu核數不夠用了
lscpu 也能夠查看cpu信息
vmstat命令
vmstat監控系統狀態
vmstat 1 每一秒顯示一次系統狀態(動態顯示),不須要時使用Ctrl+c中止
vmstat 1 5 每一秒顯示一次系統狀態,只顯示5次,5次後自動終止
須要關注的點:
一、r=run 表示有多少進程處於運行狀態
當進程有多個時,而CPU只有一個,那麼就須要輪流使用,在一個時刻只容許一個進程在使用cpu運行
二、b=block 有多少個進程在等待
三、swpd 當內存不夠時,系統能夠拿出內存中的一部分數據臨時放到swap交換分區裏去。若是swpd值一直變換時,說明交換分區和內存在頻繁的交換數據,表明內存不夠了
四、si/so 與swpd存在關聯
si(i表明in,單位是kb)有多少k的塊數據,從swap進入到內存中 so(o表明out)有多少k的塊數據,從內存中進入到swap 若是swpd在頻繁變換時,這兩個值確定也會變更。
五、bi/bo 與磁盤存在關聯
bi有多少k的數據從磁盤進入到內存中 ,讀的數據量是多少,從磁盤裏讀
bo有多少k的數據從內存寫入到磁盤,寫的數據量是多少,從磁盤裏寫,寫入到磁盤裏去
這兩個數值很大時,說明磁盤在頻繁的讀寫。跟CPU和內存比,磁盤是很慢的,若是很頻繁的讀寫數據會致使b列的增長。由於有不少進程 在等待磁盤。
六、us用戶級別,數字不會超過100,百分比
表示用戶的資源佔用CPU的百分比,若是數字長時間大於50,說明系統確定資源不夠
七、sy系統自己的一些進程、服務,佔用資源的百分比
八、id 空閒
us+sy+id=100%
九、wa=wait有多少進程在等待CPU的百分比
top命令
top查看進程使用資源狀況
top 3秒顯示一次,動態的
第一行:和w命令第一行相同
第二行:有多少個任務,有多少個正在運行的進程,有多少個休眠的進程,有多少箇中止的進程,有多少個殭屍進程zombie (主進程被意外終止的)
第三行:CPU百分比,平時須要多關注us,若是us很高,系統負載將會特別大。st表示被偷走的cpu,若是服務器作了虛擬化,下面有一些虛擬機,就會偷走一些cpu。
第四行:KiB Mem表示物理內存,須要關注。free剩餘空間
第五行:KiB Swap表示交換分區
下面默認按照%CPU排序,佔用高的在上。
RES:物理內存大小,單位是字節。
PID:進程號,可使用它殺死進程,kill+pid號殺死進程
想要按照內存佔用%MEM大小排序,按大寫的m(M)鍵 ,恢復按照%CPU排序,按大寫p(P)鍵
查看全部CPU使用率,按1,能夠來回切換
退出,按q
top -c 能夠看到具體的進程命令,全局的路徑,看的更詳細
top -bn1 靜態的顯示,一次性把全部的信息所有輸出出來,適合在寫腳本時實用
sar命令
sar Linux系統裏的瑞士軍刀
沒有的話須要先安裝: yum install -y sysstat
安裝完成後報錯:沒法打開 /var/log/sa/sa14: 沒有那個文件或目錄
緣由是 由於sar 命令不加具體的選項和參數,會默認調用系統裏保留的一個歷史文件/var/log/sa ,sar生成的歷史文件存放目錄,每10分鐘抓取一遍系統狀態,此時尚未生成,10分鐘後會生成
sar -n DEV 1 10 查看網卡流量 1是每一秒鐘顯示一次,10是顯示10次
用法和vmstat相似,後面跟1 10表示每隔1秒顯示一次,顯示10次
第一列:時間
第二列:IFACE網卡名字
第三列:rxpck/s接受到的數據包,單位個數,幾千正常,上萬就不正常
第四列:txpck/s發送出去的數據包
第五列:rxkB/s接收的數據量,單位KB
第六列:txkB/s發送的數據量
第七列:rxcmp/s不須要關注
第八列:txcmp/s不須要關注
第九列:rxmcst/s不須要關注
查看前一天的歷史數據據 sar -n DEV -f /var/log/sa/sa14 sa14 是14號生成的,因此以14結尾
/var/log/sa裏保留的文件最多爲1個月,因此文件爲sa01 -sa31
sar -q 查看系統負載
sar -q -f /var/log/sa/sa14 能夠查看14號的負載
sar -b 查看磁盤讀寫
nload命令
沒安裝的話使用前須要先安裝
yum install -y epel-release 若是epel-release安裝了才能夠繼續安裝nload
yum install -y nload 安裝nload
直接運行nload 動態的顯示網卡實時速度的一個頁面
第一行顯示網卡名字、IP、網卡其中之一(1/2),能夠按右方向鍵切換網卡,按q退出
Incoming進來帶寬
Outgoing出去帶寬
curr當前值
Avg平均值
Min最小值
Max最大值
Ttl總和
監控io性能
一、 iostat
在安裝sysstat包時,默認會安裝iostat包,和sar在同一個包裏
和vmstat相似,沒一秒執行一次,執行兩次
iostat -d 只查看Device 相關的信息,Device 須要着重看,看讀寫速度
iostat -x
重要指標:%util
表示磁盤的使用百分比,若是這個數字很大,好比長期超過90%,說明磁盤很是忙,讀寫確定也會很大。若是讀寫不大,但該列值很大, 就說明硬盤有問題。
iotop 當磁盤io很忙,可使用iotop查看,得到讀寫的進程是哪一個,按IO使用率大小排序
yum install -y iotop 沒安裝的話先安裝
和top很像,動態顯示
SAWPIN 交換分區,交換到內存裏去
free命令
用來查看內存和swap使用狀況
centos6和centos7顯示的內容是不同的,7更加直觀,第一行是說明,第二行是內存使用狀況,第三行是swap使用狀況,咱們主要關注第二行,內存使用狀況。
第一列:total內存總大小,單位KB
第二列:used內存已用大小,着重關注此列
第三列:free內存剩餘大小
第四列:shared共享大小
第五列:buff(緩衝)/cache 緩存)
關於buffer和cache咱們能夠這樣簡單區分:
0000(磁盤)-->內存(cache)--> CPU 即,從磁盤讀出來後先放到內存裏,而後CPU再到內存裏去取這部分數據,這裏的內存叫作cache
cpu(00000)--> 內存(buff)--> 磁盤 即,cpu產生的數據首先寫入到內存中,而後再慢慢寫到磁盤裏,這部份內存叫作buffer
正常狀況下內存總大小=已有+剩餘,這裏是並不對等的,由於在Linux系統裏,會有一部分空間給buff/cache
第六列:available 包含free和buffer/cache剩餘部分,關注available,這個數字是真正剩餘的物理內存大小
公式:total=used+free+buff/cache
指定單位爲M時,使用free -m
指定單位爲G時,使用free -g或者free -h 在後面顯示單位
free -b 單位爲b
ps命令
ps命令查看系統進程
ps aux 靜態的,一次性把系統當前全部進程列出來
USER用戶
PID進程ID,殺死進程時能夠用到kill PID,有時候這樣並不能終止進程,須要加-9選項,即kill -9 PID,但這樣有點暴力,嚴重時會丟失數據,儘可能不要使用。
STAT進程狀態,分爲如下幾種
D 不能中斷的進程
R 正在運行,或在隊列中的進程
S 處於休眠狀態的進程
T 中止或被追蹤的進程
Z 殭屍進程
W 進入內存交換(從內核2.6開始無效)
X 死掉的進程
< 高優先級進程
N 低優先級進程
L 內存中被鎖了內存分頁
s 主進程,包含子進程
l 多線程進程
+ 前臺進程
查看進程所在目錄 Is -I /proc/進程的PID/
ps aux |grep 進程名 檢測進程有沒有運行的方法
ps -elf 相似於ps aux,把系統全部進程全列出來
ps -eLf(查看線程)
查看網絡狀態 netstat
netstat -lnp 查看監聽端口 須要關注上面的端口部分
netstat -an 查看tcp/ip 全部的鏈接狀態
netstat -ltnp 只查看tcp的監聽端口
netstat -ltunp 查看tcp和udp的監聽端口
小技巧:查看全部狀態數字
netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
ESTABLISHED若是很大,說明系統很忙,咱們能夠理解爲併發鏈接數,併發就是 同一時間有多少個客戶端在鏈接
ss -an和netstat殊途同歸,顯示tcpip狀態
ss -an |grep -i listen
查看listen的狀態,不會顯示進程名稱
netstat -lntp netstat 顯示
Linux下抓包
一、tcpdump工具 .
安裝 yum install -y tcpdump
tcpdump採用命令行方式對接口的數據包進行篩選抓取,其豐富特性表如今靈活的表達式上。不帶任可選項的tcpdump,默認會抓取第一個網絡接口,且只有將tcpdump進程終止纔會中止抓包。
命令格式:
tcpdump [ -DenNqvX ] [ -c count ][ -F file ][ -i interface ] [ -r file ]
[ -s snaplen ] [ -w file ] [ expression ]
抓包選項:
-c:指定要抓取的包數量。注意,是最終要獲取這麼多個包。例如,指定"-c 10"將獲取10個包,但可能已經處理了 100個包,只不過只有10個包是 知足條件的包。
-i interface:指定tcpdump須要監聽的接口。若未指定該選項,將從系統接口列表中搜尋編號最小的已配置好的接口(不包括loopback接口,要 抓取loopback接口使用tcpdump -i lo),一旦找到第一個符合條件的接口,搜尋立刻結束。可使用'any'關鍵字表示全部網絡接口。
-n:對ip地址以數字方式顯式,不然顯示爲主機名,也就是說-n選項不作主機名解析。
-nn:除了-n的做用外,還把端口顯示爲數值,不然顯示端口服務名。
-N:不打印出host的域名部分。例如tcpdump將會打印’nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入仍是流出的包。能夠給定的值爲"in"、"out"和"inout",默認爲"inout"。
-s len:設置tcpdump的數據包抓取長度爲len,若是不設置默認將會是65535字節。對於要抓取的數據包較大時,長度設置不夠可能會產生包截 斷,若出現包截斷, 輸出行中會出現"[|proto]"的標誌(proto實際會顯示爲協議名)。可是抓取len越長,包的處理時間越長,而且會減小tcpdump可緩存的 數據包的數量,從而會致使數據包的丟失,因此在能抓取咱們想要的包的前提下,抓取長度越小越好。
輸出選項:
-e:輸出的每行中都將包括數據鏈路層頭部信息,例如源MAC和目標MAC。
-q:快速打印輸出。即打印不多的協議相關信息,從而輸出行都比較簡短。
-X:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出。
-XX:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出,更詳細。
-v:當分析和打印的時候,產生詳細的輸出。
-vv:產生比-v更詳細的輸出。
-vvv:產生比-vv更詳細的輸出。
其餘功能性選項:
-D:列出可用於抓包的接口。將會列出接口的數值編號和接口名,它們均可以用於"-i"後。
-F:從文件中讀取抓包的表達式。若使用該選項,則命令行中給定的其餘表達式都將失效。
-w:將抓包數據輸出到文件中而不是標準輸出。能夠同時配合"-G time"選項使得輸出文件每time秒就自動切換到另外一個文件。可經過"-r"選項載 入這些文件以進行分析和打印。
-r:從給定的數據包文件中讀取數據。使用"-"表示從標準輸入中讀取。
tcpdump -nn -i ens33
tcpdump -nn -i ens33 port 22 只要端口是22的包
tcpdump -nn -i ens33 not port 80 不要80端口的包
tcpdump -nn -i ens33 not port 80 and host 192.168.247.3 不要80端口而且host是192.168.247.3 的包
tcpdump -nn -i ens33 -c 100 只抓取100個包
tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap
要有數據產生才能抓包,能夠再打開一個終端產生一些數據,例如執行top命令、vmstat命令,過一會就會抓取完。
要查看1.cap信息,不能直接使用cat 查看 使用 tcpdump -r /tmp/1.cap 查看
二、tshark
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" 能夠查看指定網卡80端口的web訪問狀況,主要針對80端口
tshark -i ens33 -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"
Linux網絡相關
fconfig查看網卡ip(yum install net-tools)
ifconfig -a 當網卡down掉的時候,通常不會顯示,加上-a會所有顯示出來
ifup ens33/ifdown ens33 啓用/關閉網卡
不要在Xshell裏使用,在虛擬機裏使用。通常在對網卡進行更改後使用,例如添加網關。也能夠一塊兒使用ifdown ens33 && ifup ens33,防止遠程鏈接斷掉
設置虛擬網卡
首先在網卡配置文件目錄裏複製一個ens33的配置文件
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33\:0 \ 脫義冒號
對新作的網卡編輯
ifdown ens33 && ifup ens33 在運行此命令從新鏈接下網卡
ifconfig 查看
能夠在windows上Ping 192.168.247.155是否通
mii-tool ens33 查看網卡是否鏈接
ethtool ens33 也能夠查看網卡是否鏈接
更改主機名 hostnamectl set-hostname 001
centos6不支持此命令,想要生效須要退出從新登陸一下
hostname 能夠查看主機名
查看主機名配置文件 cat /etc/hostname
DNS配置文件/etc/resolv.conf
這是由網卡配置文件定義的,也能夠臨時編輯resolv.conf文件設置dns2,可是重啓後依然會被網卡里的配置文件覆蓋
/etc/hosts文件
在Windows和Linux下都有此文件,後續講Iamp時去訪問自定義域名時,就會用到此文件。假設咱們ping—個域名,會解析出他的公網IP, 可是若是咱們在hosts文件裏配置此域名,就會解析到咱們配置的IP上
正常ping www.qq.com
編輯hosts文件
從新ping ,僅在本機生效
注意: 一個ip後面能夠跟多個域名,可是同一個域名只能有一個ip生效
若是前面同一個域名指定了兩個ip,會之後面的ip爲主
模擬一個G的磁盤空間:
dd if=/dev/zero of=/bigfile bs=1M count=1000
dd(對磁盤進行操做的工具),if(從哪裏來),of(目標的文件或磁盤,此處寫入到跟目錄下,叫bigfile),bs(決定文件大小)=1M(即每一個塊爲1M),count=1000(共有1000個塊),也能夠寫成bs=100M,count=10
mkswap /bigfile 格式化成swap格式
chmod 600 /bigfile 更改權限
swapon /bigfile 掛載
以前的swap大小
掛載後的大小