1. 静态信息: 2. 动态信息: 3. 输出到文件 4. setcap设置文件功能
Linux世界, 一切都是文件. 本文介绍如何阅读一些重要的信息.
首先将Linux系统运行中提供的信息分为2大类. 动态信息和静态信息.
1. 静态信息:
现在查和过一会儿查询都一样. (除非你替换硬件, 升级驱动, 安装或升级软件)
- 硬件信息, 驱动: hwinfo, lshw
- 已安装软件相关信息: pacman -Q...
- 配置文件, 单元文件: cat, stat, file.
- 安装历史: paclog
- 历史日志等: journalctl
- 文件目录: ls, tree
- 文件查找: which, whereis, locate, find, fd
- 这是什么: whatis
- 文件状态: stat
- 文件类型: file
- 文件对比: diff
- 磁盘状态: lsblk, blkid, du, df
2. 动态信息:
实时监看不断变化的各种状态信息. 有酷炫的netstat, 参见:
还有些图形界面的工具, 比如: glances; conky; etherape等
以下列举一些常用的命令:
动态信息 | 持续刷新, 实时监看 | 快照 | 连续快照 | 所属包 |
CPU | watch -d mpstat | mpstat | Mpstat 2 5 | sysstat |
i/o | watch iostat -m | iostat -m | iostat 2 | sysstat |
进程 | watch pidstat | pidstat | pidstat -ul 10 | sysstat |
ram | watch -d free | free | procps-ng | |
虚拟内存 | watch -d vmstat | vmstat | vmstat 2 5 | procps-ng |
进程 | watch ps -efux | ps -efux | procps-ng | |
进程 | top | procps-ng | ||
进程(cgroup) | htop | htop | ||
温度 | watch -d sensors | sensors | lm_sensors | |
i/o | sudo iotop | iotop | ||
网络-ip端口 | iftop -P -N -p -i wlp16s0 -m 100m | iftop | ||
网络-cvs等输出 | sudo jnettop | jnettop | ||
网络-进程流速 | sudo nethogs -l | nethogs | ||
网络-菜单选择 | sudo iptraf-ng | iptraf-ng | ||
网络-ip端口 | watch ss -tuanp | ss -tuanp | iproute2 | |
网络-网卡 | watch -d ifstat | ifstat | iproute2 | |
网络-统计 | watch -d nstat | nstat | iproute2 | |
网络-统计 | lnstat | iproute2 | ||
网络-统计 | ctstat, rtstat | iproute2 | ||
多种资源 | dstat | dstat |
注: 所有的快照命令, 都可以通过watch命令升级为类似Top的实时刷新的显示状态, 以便实时监看.
3. 输出到文件
- 所有静态信息直接加" > xxmane.log "即可输出到文件.
- 所有"快照"命令直接加" > xxmane.log "即可输出到文件.
- 所有的命令本身提供的"连续快照"命令直接加" > xxmane.log "即可输出到文件, 比如作为后台运行:
- $ nohup pidstat -ul 1 > pidstats.log 2>&1 &
- $ awk '{print $3"\t"$10}' pidstats.log |sort |uniq -c |sort -rn |grep -vEw 'chromium|man|less'
- $ cat pidstats.log |awk '{print $3"\t"$10}' |sort |uniq -c |sort -rn |grep -vEw 'chromium|man|less'
- sort 排序
- uniq -c 统计重复行数
- sort -rn 按数字倒序
- grep -vEw 排除多个关键单词
- 所有"快照", 都可以"使用watch生成连续快照"输出到文件: 比如:
- $ watch 'ps -auxf >> ps-auxf.txt'
watch默认时间间隔为2秒, 可以使用-n 参数指定秒数. 上面这行命令不断输入ps所有列, 每2秒记录一次, 不断写入文件. 可以在每个间隔之间添加时间戳, 例如下面的脚本:
#!/bin/bash date > /mnt/sa10/dir/ps.txt while [ true ] do /bin/sleep 1 date >> /mnt/sa10/dir/ps.txt /usr/bin/ps -auxf >> /mnt/sa10/dir/ps.txt done
4. setcap设置文件功能
使iftop, nethogs的使用不再需要root权限.
$ sudo setcap cap_net_raw+ep /usr/bin/iftop
$ sudo setcap cap_net_admin,cap_net_raw+ep /usr/bin/nethogs
$ getcap /usr/bin/nethogs
/usr/bin/nethogs = cap_net_admin,cap_net_raw+ep
更多参考:
SYSSTAT Howto: A Deployment and Configuration Guide for Linux Servers
By kryptikos -August 10, 20091794
https://www.linux.com/training-tutorials/sysstat-howto-deployment-and-configuration-guide-linux-servers/
MySQL Database Configuration
...
Loading SYSSTAT Logs Into the MySQL Database