iostat工具 : 相似sar,用於監控cpu和磁盤IO性能linux
安裝:ios
[root@localhost ~]# yum -y install sysstat
*與sar工具在同一個包中,如已安裝sar,便可直接使用iostatweb
使用:shell
[root@localhost ~]# iostat -x Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 2019年09月24日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.08 0.00 0.14 0.01 0.00 99.77 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.07 0.11 2.63 4.52 80.50 0.00 3.17 0.97 4.68 0.99 0.02 scd0 0.00 0.00 0.01 0.00 0.11 0.00 21.98 0.00 1.43 1.43 0.00 1.37 0.00 dm-0 0.00 0.00 0.07 0.12 2.49 4.50 75.86 0.00 3.30 1.02 4.64 0.95 0.02 dm-1 0.00 0.00 0.00 0.00 0.03 0.00 54.67 0.00 0.24 0.24 0.00 0.20 0.00
-x 參數:輸出更詳細的IO設備信息(主要是最後一列:util) avg-cpu:cpu使用狀況統計 iowait列:表示cpu用於等待IO請求的完成時間(值超過50%,或者明顯大於%system、%user以及%idle,表示IO可能存在問題。) rkB/s:每秒讀取數據量(KB) wkB/s:每秒寫入數據量(KB) util:IO操做佔用cpu的時間,表示磁盤忙碌狀況(若是值超過50%但每秒讀寫數據量又不高表示磁盤可能存在問題)vim
iotop: 相似top,區別在於top監控進程的cpu和內存使用率,iotop監控程序的IO使用情況緩存
安裝:網絡
[root@localhost dev]# yum -y install iotop
IO列:表示進程的IO使用情況 按o鍵:只顯示有IO操做的進程多線程
free命令:查看內存和swap使用狀況dom
使用:ssh
[root@localhost dev]# free total used free shared buff/cache available Mem: 1005628 133616 411228 7652 460784 668556 Swap: 2097148 0 2097148 [root@localhost dev]# free -h total used free shared buff/cache available Mem: 982M 130M 401M 7.5M 449M 653M Swap: 2.0G 0B 2.0G
-h 參數:以MB爲單位顯示 total:內存總量 used:已使用量 free:空閒內存 buff:緩衝空間 cache:緩存空間 available:可以使用空間
cache與buffer的區別:
磁盤--->內存(cache)--->cpu 當cpu須要讀取磁盤數據時,數據會先到內存中,供cpu讀取、處理、計算等操做,此時數據存在內存中的cache緩存空間中
cpu--->內存(buffer)--->磁盤 當cpu處理的數據要被寫入磁盤時,數據會先進入內存的buffer空間中,在寫入磁盤
補充: total=used+free+buff/cache avaliable=free+buff/cache中剩餘未使用的空閒部分
ps命令:輸出進程信息(靜態顯示) -aux 參數:顯示完整信息 -ef 參數:顯示信息沒有aux詳細(通常用於查找進程的PID,kill進程)
使用:
USER:啓動進程的用戶 PID:進程號 STAT:進程狀態 START:啓動時間 TIME:運行了多久 COMMAND:進程名
根據進程號殺進程:
[root@localhost dev]# ps -ef|grep auditd root 91 2 0 9月23 ? 00:00:00 [kauditd] root 5080 1 0 9月23 ? 00:00:00 /sbin/auditd root 16496 15918 0 20:49 pts/1 00:00:00 grep --color=auto auditd [root@localhost dev]# kill 5080
STAT進程狀態: D:不能中斷的進程 R:run,運行狀態的進程 S:休眠狀態的進程(不運行時進入休眠狀態的進程,運行時變爲S+) T:暫停的進程 Z:殭屍進程 <:高優先級進程 N:低優先級進程 L:內存中被鎖內存分頁 s:主進程 l:多線程進程(sl包含多個線程的主進程) +:前臺運行的進程
參數: -t : 指明顯示TCP端口 -u : 指明顯示UDP端口 -l : 僅顯示監聽套接字 -p : 顯示進程標識符和程序名稱,每個套接字/端口都屬於一個程序。 -n : 不進行DNS輪詢,顯示IP(能夠加速操做)
查看網絡監聽端口:-lnp參數
[root@localhost dev]# 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 6078/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6231/master tcp6 0 0 :::22 :::* LISTEN 6078/sshd tcp6 0 0 ::1:25 :::* LISTEN 6231/master udp 0 0 127.0.0.1:323 0.0.0.0:* 5366/chronyd udp6 0 0 ::1:323 :::* 5366/chronyd raw6 0 0 :::58 :::* 7 5594/NetworkManager
只查看tcp類型的端口:-lntp參數
[root@localhost dev]# 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 6078/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6231/master tcp6 0 0 :::22 :::* LISTEN 6078/sshd tcp6 0 0 ::1:25 :::* LISTEN 6231/master
查看系統端口使用狀況:
[root@localhost dev]# netstat -anp
ss命令:與netstat -an相似(不能顯示PID和程序名)
[root@localhost dev]# ss -an
顯示tcp各類鏈接狀態的數量:netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
[root@localhost dev]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' LISTEN 4 ESTABLISHED 1
安裝:
[root@localhost ~]# yum -y install tcpdump
用法:
[root@localhost ~]# tcpdump -nn -i ens33
-nn:表示將兩個(源地址/目標地址)hostname以ip顯示 -i:指定網卡名稱
指定端口:
[root@localhost ~]# tcpdump -nn -i ens33 port 80
*只抓80端口的數據包
取反:(只抓除了80端口的全部包)
[root@localhost ~]# tcpdump -nn -i ens33 not port 80
多條件:
[root@localhost ~]# tcpdump -nn -i ens33 not port 80 and host 192.168.234.1
*只抓 ip爲192.168.234.1的地址除了80端口的包
-c參數:指定抓包數量
[root@localhost ~]# tcpdump -nn -i ens33 -c 10
-w參數:將數據包寫入指定文件
[root@localhost ~]# tcpdump -nn -i ens33 -c 5 -w /tmp/1.cap tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 5 packets captured 5 packets received by filter 0 packets dropped by kernel
查看數據包文件:tcpdump -r
[root@localhost ~]# tcpdump -r /tmp/1.cap reading from file /tmp/1.cap, link-type EN10MB (Ethernet) 23:04:16.355507 IP localhost.localdomain.ssh > 192.168.234.1.52014: Flags [P.], seq 2733320790:2733320922, ack 2721249905, win 266, length 132 23:04:16.355793 IP 192.168.234.1.52014 > localhost.localdomain.ssh: Flags [.], ack 132, win 8211, length 0 23:04:22.622548 IP 192.168.234.1.52014 > localhost.localdomain.ssh: Flags [P.], seq 1:69, ack 132, win 8211, length 68 23:04:22.622708 IP localhost.localdomain.ssh > 192.168.234.1.52014: Flags [P.], seq 132:184, ack 69, win 266, length 52 23:04:22.667220 IP 192.168.234.1.52014 > localhost.localdomain.ssh: Flags [.], ack 184, win 8210, length 0
補充: tshark工具: 查看指定網卡80端口的web訪問狀況
安裝:
[root@localhost ~]# yum -y install wireshark
命令:
[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 "http.request.uri"
*能夠查看訪問時間、訪問IP、訪問的域名、訪問的文件、HTTP請求類型(相似web訪問日誌)
ifconfig命令用於查看或更改網卡配置信息,啓動或關閉網卡
安裝:
[root@localhost ~]# yum -y install net-tools
使用:
[root@localhost ~]# ifconfig -a ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.234.128 netmask 255.255.255.0 broadcast 192.168.234.255 inet6 fe80::777d:eb3e:9e03:3457 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:10:01:94 txqueuelen 1000 (Ethernet) RX packets 253157 bytes 67090793 (63.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 343338 bytes 103040732 (98.2 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 120 bytes 10496 (10.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 120 bytes 10496 (10.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-a參數:顯示全部網卡信息,如未加-a參數,只顯示已激活網卡的信息
ifdown:關閉網卡
[root@localhost ~]# ifdown ens33
ifup:啓動網卡
[root@localhost ~]# ifup ens33
經常使用於在修改了網卡配置後重啓單個指定的網卡,而不須要重啓網絡服務影響全部網卡:
[root@localhost ~]# ifdown ens33 && ifup ens33
添加虛擬網卡:ens33:01
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:01
修改虛擬網卡配置文件:
[root@localhost network-scripts]# vim ifcfg-ens33:01
修改如下內容:NAME/DEVICE/IPADDR
重啓網卡:
[root@localhost ~]# ifdown ens33 && ifup ens33
虛擬網卡已在運行:
[root@localhost ~]# ifconfig -a ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.234.128 netmask 255.255.255.0 broadcast 192.168.234.255 inet6 fe80::777d:eb3e:9e03:3457 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:10:01:94 txqueuelen 1000 (Ethernet) RX packets 271863 bytes 87467742 (83.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 349091 bytes 103525345 (98.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:01: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.234.129 netmask 255.255.255.0 broadcast 192.168.234.255 ether 00:0c:29:10:01:94 txqueuelen 1000 (Ethernet)
mii-tool命令:查看網絡接口狀態
[root@localhost ~]# mii-tool ens33 ens33: negotiated 1000baseT-FD flow-control, link ok
*最後一列 link值爲ok表示網卡已鏈接
ethtool命令:與mii-tool命令相似
[root@localhost ~]# ethtool ens33
*最後一行 Link detected值爲yes表示網卡已鏈接
linux下更改hostname:
臨時更改,終端從新鏈接後生效,系統重啓後失效
[root@localhost ~]# hostname test
永久更改:
[root@test ~]# hostnamectl set-hostname linux [root@linux ~]# cat /etc/hostname linux
DNS配置文件:
[root@linux ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 192.168.234.2
*該文件中的DNS配置信息來自於網卡配置文件中定義的DNS地址,能夠臨時更改
域名重定向文件:
[root@linux ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
*可使單個或多個域名在訪問時指向指定的 IP地址
[root@linux ~]# echo '192.168.234.129 www.baidu.com' >> /etc/hosts
*將訪問百度時的地址指向虛擬網卡地址192.168.234.129
[root@linux ~]# ping www.baidu.com PING www.baidu.com (192.168.234.129) 56(84) bytes of data. 64 bytes from www.baidu.com (192.168.234.129): icmp_seq=1 ttl=64 time=0.154 ms 64 bytes from www.baidu.com (192.168.234.129): icmp_seq=2 ttl=64 time=0.111 ms
*域名重定向只在本機生效