Linux 运维常用命令总结

网上收集的,实际运用的不多,毕竟我不是一个运维.

    1. 删除0字节文件
1
2
find -type f -size 0 -exec rm -rf {} \;
// {} 和 \ 中间有空格!!!
    1. 查看进程: 按内存从大到小排列
1
ps -e -o "%C : %p : %z : %a"|sort -k5 -nr
    1. 按cpu利用率从大到小排列
1
ps -e -o "%C : %p : %z : %a"|sort -nr
    1. 打印cache里的URL
1
grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'
    1. 查看http的并发请求数及其TCP连接状态
1
2
[root@caoxl ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ESTABLISHED 10
    1. 如何杀掉mysql进程
1
ps aux |grep mysql |grep -v grep  |awk '{print $2}' |xargs kill -9
    1. 显示运行3级别开启的服务
1
ls /etc/rc3.d/S* |cut -c 15-
    1. 取IP地址
1
2
[root@caoxl ~]# ifconfig eth0 |grep "inet" |awk '{print $2}'|cut -c 1-  
172.31.45.94
    1. 查看内存大小
1
free -m |grep "Mem" | awk '{print $2}'
    1. 查看Apache的并发请求数及其TCP连接状态
1
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    1. 统计一下服务器下面所有的jpg的文件的大小
1
2
[root@caoxl ~]# find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'
25872544
    1. CPU负载
1
2
3
[root@caoxl ~]# cat /proc/loadavg
0.07 0.08 0.07 2/171 2683
// 检查前三个输出值是否超过了系统逻辑CPU的4倍。
1
2
3
4
5
6
7
8
[root@caoxl ~]# mpstat 1 1
Linux 3.10.0-862.9.1.el7.x86_64 (caoxl) 11/08/2018 _x86_64_ (1 CPU)

10:18:06 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
10:18:07 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

// 检查%idle是否过低(比如小于5%)
    1. 内存空间
1
2
3
4
[root@caoxl ~]# free
total used free shared buff/cache available
Mem: 1015436 372240 75896 2660 567300 436428
Swap: 0 0 0

检查free值是否过低 也可以用 # cat /proc/meminfo

    1. swap空间 // free

检查swap used值是否过高 如果swap used值过高,进一步检查swap动作是否频繁:

1
2
3
4
5
6
7
8
[root@caoxl ~]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 0 75836 216256 351220 0 0 1 3 2 4 0 0 100 0 0
0 0 0 75492 216256 351256 0 0 0 0 306 362 1 0 99 0 0
0 0 0 75556 216256 351192 0 0 0 0 282 327 0 0 100 0 0
0 0 0 75560 216256 350996 0 0 0 0 326 347 0 0 100 0 0
0 0 0 76024 216256 351152 0 0 0 0 368 369 1 1 98 0 0

观察si和so值是否较大

    1. 磁盘空间
1
2
3
4
5
6
7
8
[root@caoxl ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 8.3G 29G 23% /
devtmpfs 486M 0 486M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 524K 496M 1% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/0

检查是否有分区使用率(Use%)过高(比如超过90%) 如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录

1
2
3
4
5
6
[root@caoxl ~]# du -cks * | sort -rn | head -n 10
36644 total
26428 letsencrypt
9764 redis-4.0.2
368 curl
84 test
    1. 磁盘I/O负载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@caoxl ~]# iostat -x 1 2
Linux 3.10.0-862.9.1.el7.x86_64 (caoxl) 11/08/2018 _x86_64_ (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
0.22 0.01 0.15 0.02 0.00 99.60

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.22 0.04 0.40 0.71 3.25 17.90 0.00 3.92 5.24 3.79 0.52 0.02

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 2.00 0.00 98.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 1.00 0.00 8.00 0.00 16.00 0.01 15.00 15.00 0.00 15.00 1.50
    1. 网络负载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@caoxl ~]# sar -n DEV
Linux 3.10.0-862.9.1.el7.x86_64 (caoxl) 11/08/2018 _x86_64_ (1 CPU)

12:00:02 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
12:10:01 AM eth0 100.37 46.98 86.98 83.42 0.00 0.00 0.00
12:10:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:20:01 AM eth0 187.65 100.08 149.14 170.11 0.00 0.00 0.00
12:20:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:30:01 AM eth0 85.36 49.59 66.09 78.49 0.00 0.00 0.00
12:30:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:40:01 AM eth0 0.22 0.19 0.02 0.03 0.00 0.00 0.00
12:40:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:50:01 AM eth0 0.27 0.28 0.02 0.05 0.00 0.00 0.00
12:50:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:00:01 AM eth0 0.21 0.21 0.02 0.04 0.00 0.00 0.00
01:00:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:10:01 AM eth0 0.21 0.18 0.01 0.02 0.00 0.00 0.00
01:10:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:20:01 AM eth0 0.25 0.21 0.02 0.04 0.00 0.00 0.00
01:20:01 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00

检查网络流量(rxbyt/s, txbyt/s)是否过高

    1. 网络错误
1
2
3
4
5
[root@caoxl ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 34523059 0 0 0 22681911 0 0 0 BMRU
lo 65536 39633 0 0 0 39633 0 0 0 LRU

检查是否有网络错误(drop fifo colls carrier) 也可以用命令:

1
2
3
4
5
[root@caoxl ~]# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
eth0: 25713047703 34537250 0 0 0 0 0 0 27008140200 22688234 0 0 0 0 0 0
lo: 19237141 39633 0 0 0 0 0 0 19237141 39633 0 0 0 0 0 0
    1. 网络连接数目
1
2
3
4
5
[root@caoxl ~]# netstat -an | grep -E "^(tcp)" | cut -c 68- | sort | uniq -c | sort -n
1 ESTABLISHED
1 TIME_WAIT
8 LISTEN
11 ESTABLISHED
    1. 进程总数
1
2
[root@caoxl ~]# ps aux | wc -l
91

检查进程个数是否正常 (比如超过250)

    1. 可运行进程数目
1
2
3
4
5
6
7
procs -----------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 97868 91556 454388 0 0 1 3 2 4 0 0 100 0 0
0 0 0 97868 91556 454380 0 0 0 0 266 357 1 0 99 0 0
0 0 0 97744 91560 454376 0 0 12 0 276 375 0 1 97 2 0
0 0 0 97744 91560 454388 0 0 0 0 262 345 0 0 100 0 0
0 0 0 97728 91560 454388 0 0 0 0 259 337 1 0 99 0 0
    1. 进程:观察是否有异常进程出现
1
top -id 1
    1. 用户: 检查登录用户是否过多
1
2
3
4
[root@caoxl ~]# who | wc -l
1
[root@caoxl ~]# uptime
10:40:42 up 97 days, 1:01, 1 user, load average: 0.00, 0.04, 0.05
    1. 系统日志
1
cat /var/log/*errors
    1. 核心日志: 检查是否有异常错误记录
1
dmesg
    1. 打开文件数目
1
2
[root@caoxl log]# lsof | wc -l
10902
    1. 查看80端口相关的进程
1
2
3
4
5
[root@caoxl log]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 2277 root 8u IPv4 734951 0t0 TCP *:http (LISTEN)
nginx 2278 www 8u IPv4 734951 0t0 TCP *:http (LISTEN)
AliYunDun 4092 root 37u IPv4 2927506 0t0 TCP caoxl:47014->100.100.30.25:http (ESTABLISHED)
    1. 杀掉80端口相关的进程
1
lsof -i :80|grep -v "ID"|awk '{print "kill -9",$2}'|sh
    1. 清除僵死进程
1
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9
    1. tcpdump 抓包 ,用来防止80端口被人攻击时可以分析数据
1
tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
    1. 然后检查IP的重复数 并从小到大排序 注意 “-t\ +0” 中间是两个空格
1
less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\  +0
    1. 查看有多少个活动的php-cgi进程
1
netstat -anp | grep php-cgi | grep ^tcp | wc -l
    1. 查看系统自启动的服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@caoxl log]# chkconfig --list | awk '{if ($5=="3:on") print $1}'

Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.

If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.

aegis
agentwatch
mysql
network
nginx
php-fpm
shadowsocks

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2022 Keep It Simple And Stupid All Rights Reserved.

访客数 : | 访问量 :