日常运维常用命令(1)
- 使用w查看系统负载
- vmstat命令
- top命令
- sar命令
- nload命令
- 监控io性能
- free命令
- ps命令
- 查看网络状态
- linux下抓包
- Linux网络相关
1. 使用w查看系统负载
- w命令(查看系统负载) uptime异曲同工
解析
09:46:16 up 10 days, 19:47, 1 user, load average: 0.00, 0.01, 0.05
#系统时间 #启动时间 #登录一个用户 #系统负载1分钟、5分钟、15分钟
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
#登录用户 #登录终端 #来源ip #登录时间 #负载1分钟、5分钟、15分钟
root pts/0 118.113.147.83 09:46 0.00s 0.01s 0.00s w
0表示空闲,对资源的浪费在空载 主要关注1分钟最能体现当前系统情况
- cat /proc/cpuinfo 查看cpu个数
2. vmstat命令
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 67564 85692 345044 0 0 0 1 2 41 0 0 100 0 0
0 0 0 67540 85692 345044 0 0 0 0 102 281 0 0 100 0 0
0 0 0 67540 85692 345044 0 0 0 0 99 279 0 0 100 0 0
r rum #进程被cpu以外的资源阻断了
swpd #内存不够的时候会使用swp分区
si #有多少个kb的数据从swp中进入内存
so #有多少kb从内存中出来
bi #从磁盘出来进入到内存中(读的数据量)
bo #写入到磁盘中(写的数据量)
us #表示占用不会超过100 显示为百分比
sy #系统本身进程服务占用的百分比
id #空闲
wa #等待cpu的百分比
3. top命令
具体查看是哪个进程占用
top -c #可以显示出进程的路径
top -bn1 #可以静态显示所有内容
top - 22:19:30 up 11 days, 8:21, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1014908 total, 74900 free, 516980 used, 423028 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 344524 avail Mem
第一行:系统时间、启动多久了、在线几个用户、负载1分钟,5分钟,15分钟
第二行:总进程、运行中进程、休眠中进程、停止的进程、僵尸进程(主进程意外挂掉,子进程还在)
第三行:用户占用、系统占用、ni不用管通常都是0、空闲、
第四行:总内存、空闲内存、使用内存、共享的 缓冲/缓存预留
第五行:总swap、空闲swap、使用的swap、?
pid进程号、user用户名 RES物理内存(单位k)
默认使用cpu排序
按大写M内存排序
按大写P按cpu排序
按1可以列出所有cpu使用情况
4. sar命令(监控系统状态)
- yum install -y sysstat #安装sar命令
sar -n DEV 1 3 #网卡流量
sar -n DEV -f /var/log/sa/saxx 查看当天或者之前的网卡流量信息,做多能看一月的
sar -q -f /var/log/sa/saxx #系统负载
sar -b 1 5 #磁盘读写
sar -f /var/log/sa/saxx #历史文件
rxpck 下载(接收) rxkB/s 每秒接收的数据量
txpck 上传(发送) txkB/s 每秒发送的数据量
/var/log/sa/sa15 二进制文件不能直接cat,用sar命令查看
/var/log/sa/sar15 可以直接cat
5. nload命令
yum install epel-release
yum install -y nload
- nload 直接使用nload命令
6. 监控io性能
- yum install -y sysstat #安装sar命令
- iostat -x #等待io时间比
iotop
- yum install -y iotop 安装命令
7. free命令
free -h 直观查看内存使用情况
free -m 单位为m显示
磁盘-->内存(cache)-->到cpu中处理
cpu处理完的数据-->内存(buffer)-->磁盘
公式:total=used+free+buff/cache
avaliable包含free和buffer/cache剩余部分
8. ps命令
静态的把当前的进程状态显示出来 常用方法:ps aux |grep ngix ps aux
第一段(USER) 用户名
第二列(PID) pid杀进程的时候会用到
第三列(CPU) CPU百分比
第四列(MEM) 内存百分比
第五列(VSZ) 虚拟内存
第六列(RSS) 物理内存
第七列(TTY) 是在哪个tty上
第八列(STAT) 进程的状态
第九列(START) 什么时候启动的
第十列(TIME) 运行多久了
第十一列(COMMAND) 命令
查看进程是从哪里启动的:ls -l /proc/pid号/
STAT进程的状态
- D 不能中断的进程
- R run状态的进程
- S sleep状态的进程
- T 暂停的进程
- Z 僵尸进程
- < 高优先级进程
- N 低优先级进程
- L 内存中被锁了内存分页
- s 主进程
- l 多线程进程
- + 前台进程
9. 查看网络状态
netstat 查看网络状态
-
netstat -lnp 查看监听端口 (l监听)
同台服务器进程间通信使用sockets文件 -
netstat -an 查看系统的网络连接状况
-
netstat -lntp 只看出tcp的,不包含socket
-
ss -an 和nestat异曲同工
分享一个小技巧: -
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
-
查看状态个数
-
关注ESTABLISHED 保存通信,并发连接数
10. linux下抓包
- yum install -y tcpdump #安装 抓包工具tcpdump
- 用法:tcpdump -nn #第一个n ip用数字显示出来
主要关注:Flags [P.], seq 6012:6192, ack 1, win 295, length 180
- tcpdump -nn -i ens33 #-i 忽略大小写 ens33指定网卡
- tcpdump -nn port 80 #指定端口
- tcpdump -nn not port 22 and host 192.168.0.100 #不要22端口的包跟192.168.0.100这个ip的包
- tcpdump -nn -c 100 -w 1.cap #-w 写入,指定长度指定个数 使用file /tmp/1.cap #查看基本信息 使用tcpdump -r /tmp/1.cap #-r读
- 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类似于web的访问日志
11. Linux网络相关
ifconfig查看网卡ip
-
yum install net-tools 安装
-
ifconfig
-
ifconfig -a 当网卡down的时候或者没有ip的时候也显示
-
ifup ent0 启动网卡
-
ifdown ent0 down掉网卡
设定虚拟网卡ens33:1 -
cd /etc/sysconfig/network-scripts/
-
cp ifcfg-ens33 ifcfg-ens33:0 反斜杠脱义:号
-
vi ifcfg-ens33:0
-
ifdown ens33 &&ifup ens33
-
mii-tool ens33 查看网卡是否连接网线
-
ethtool ens33 也可以查看网卡是否连接网线
-
更改主机名 hostnamectl set-hostname aminglinux
-
DNS配置文件/etc/resolv.conf
-
/etc/hosts文件
扩展
tcp三次握手四次挥手(重点)
tshark几个用法 CentOS 7.x修改网卡名称
总结
三次握手
四次挥手
建立连接数据传输连接断开全过程
ip命令使用
1. 设置和删除
IPip 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
3. 停止开启网卡
ip link set eth0 downip linke set eth0 up
更改网卡名字
ip link set ens37 name eth1
永久保存:https://blog.csdn.net/jyusun/article/details/71513086