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