Liunx常用命令总结

Nginx日志分析

1
2
3
4
5
6
7
8
9
10
# 总PV
wc -l dev-gjzwwx.game.access.log
# 每天的PV数
awk '{print substr($4 , 2, 11)}' dev-gjzwwx.game.access.log | sort |uniq -c| sort -rn| head -n 10
# 按IP算UV
awk '{print $1}' dev-gjzwwx.game.access.log | sort | uniq | wc -l
# 每天的UV数
awk '{print substr($4,2,11) " " $1}' dev-gjzwwx.game.access.log | sort | uniq | awk '{uv[$1]++;next}END{for(date in uv) print uv[date] " " date}'| sort -rn| head -n 10
# 统计被访问最多的页面
cat dev-gjzwwx.game.access.log| awk '{print $7}'|sort|uniq -c | sort -rn | head -n 10

CPU监控相关命令

  • top: Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况及总体状况。实时显示系统中各个进程的资源占用状况及总体状况。
  • mpstat:实时系统监控工具,它会报告与多核心CPU相关的统计信息。
    1
    2
    apt install sysstat -y
    mpstat 1 #每隔一秒输出CPU占用情况

内存监控相关命令

  • free: 可以用来快速查看主机的内存使用情况,包括了物理内存和虚拟内存。后面可以加上参数:-h和-m,否则默认会以kb为单位显示。
1
free -h

相关参数说明:

  • total:物理内存大小,就是机器实际的内存
  • used:已使用的内存大小,这个值包括了 cached 和 应用程序实际使用的内存
  • free:未被使用的内存大小
  • shared:共享内存大小,是进程间通信的一种方式
  • buffers:被缓冲区占用的内存大小
  • cached:被缓存占用的内存大小

image.png

  • vmstat: vmstat(Virtual Meomory Statistics,虚拟内存统计)是对系统的整体情况进行统计,包括内核进程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。命令格式:vmstat 2 100,其中2表示刷新间隔,100表示输出次数。
    1
    vmstat 2 100

网络监控

  • sar: sar是一个在Unix和Linux操作系统中用来收集、报告和保存CPU、内存、输入输出端口使用情况的命令。SAR命令可以动态产生报告,也可以把报告保存在日志文件中。

    1
    sar -n DEV 3 100
  • netstat: netstat命令一般用于检验本机各端口的网络连接情况,用于显示与IP、TCP、UDP和ICMP协议相关的统计数据

    1
    2
    3
    4
    5
    netstat -aup # 输出所有UDP连接状况
    netstat -atp # 输出所有TCP连接状况
    netstat -s # 显示各个协议的网络统计信息
    netstat -i # 显示网卡列表
    netstat -r # 显示路由表信息
  • tcpdump: tcpdump是最广泛使用的网络包分析器或者包监控程序之一,它用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包。格式:

    1
    2
    apt install tcpdump -y
    tcpdump -i eth0 -c 3

磁盘监控

  • iostat: iostat是一个用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用NFS等的远端磁盘。常用格式:
    1
    iostat -x -k 2 100 # 2表示刷新间隔,100表示刷新次数
有用就打赏一下作者吧!