Skip to content

ushell/topwho

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

topwho

Linux系统诊断工具 - 快速收集和输出系统资源监控与进程分析信息

GitHub

简介

topwho 是一个轻量级的Linux系统诊断工具,通过Shell脚本实现,可以快速收集CPU、内存、网络、磁盘IO、进程等关键系统信息,便于排查系统和进程状态。

功能特性

  • CPU信息: 核心数、负载、使用率、频率
  • 内存信息: 总内存、已用、可用、缓存、交换分区
  • 网络信息: 接口状态、流量统计、连接数
  • 磁盘IO: 磁盘使用率、读写统计
  • 进程信息: TOP 10 CPU/内存占用进程(按CPU使用率、内存占比、物理内存排序)

快速开始

安装

# 克隆项目
git clone https://github.com/ushell/topwho.git
cd topwho/src

# 添加执行权限
chmod +x topwho.sh

使用方法

# 单次执行,输出到终端
./topwho.sh

# 单次执行,保存到文件
./topwho.sh -o /tmp/diag.txt

# 持续监控,每5秒刷新(默认)
./topwho.sh -c

# 持续监控,自定义间隔
./topwho.sh -c -i 3

# 持续监控并保存到文件
./topwho.sh -c -i 5 -o /tmp/monitor.log

注意: 如果从项目根目录运行,使用 ./src/topwho.sh

命令行参数

参数 说明 默认值
-c 持续监控模式 单次执行
-i SECONDS 监控间隔秒数 5
-o FILE 输出文件路径
-h 显示帮助信息 -

运行模式

单次执行模式

执行一次诊断,输出当前系统状态快照后退出。适合快速查看系统状态或生成报告。

持续监控模式

持续监控系统状态,定期刷新输出。适合实时观察系统变化或排查性能问题。按 Ctrl+C 退出。

系统要求

  • Linux操作系统
  • Bash Shell
  • 基础命令: free, df, ps
  • 可选: iostat (安装sysstat包可获得更详细的磁盘IO统计)

安装可选依赖

# CentOS/RHEL
sudo yum install sysstat

# Ubuntu/Debian
sudo apt-get install sysstat

输出示例

╔══════════════════════════════════════════════════════════════════════════════╗
║                                                                              ║
║   ████████╗  ██████╗ █████╗  ██╗    ██╗██╗  ██╗ ██████╗                      ║
║   ╚══██╔══╝██╔═══██╗██╔══██╗██║    ██║██║  ██║██╔═══██╗                      ║
║      ██║   ██║   ██║██████╔╝██║ █╗ ██║███████║██║   ██║                      ║
║      ██║   ██║   ██║██╔═══╝ ██║███╗██║██╔══██║██║   ██║                      ║
║      ██║   ╚██████╔╝██║     ╚███╔███╔╝██║  ██║╚██████╔╝                      ║
║      ╚═╝    ╚═════╝ ╚═╝      ╚══╝╚══╝ ╚═╝  ╚═╝ ╚═════╝                       ║
║                                                                              ║
║   Linux系统诊断工具 v1.0.0                                                     ║
║   系统资源监控与进程分析                                                         ║
║                                                                              ║
╚══════════════════════════════════════════════════════════════════════════════╝

[CPU信息]
───────────────────────────────────────────────────────────────────────────────
CPU核心数: 4
CPU负载(1/5/15分钟): 0.45 0.52 0.48
CPU使用率: 15%
CPU频率: 2.40 GHz

[内存信息]
───────────────────────────────────────────────────────────────────────────────
              total        used        free      shared  buff/cache   available
Mem:           7.8G        2.1G        4.2G        128M        1.5G        5.3G
Swap:          2.0G          0B        2.0G

[网络信息]
───────────────────────────────────────────────────────────────────────────────
网络接口流量统计:
  eth0: RX=1.2 GB TX=987 MB
  lo: RX=123 KB TX=123 KB

TCP连接数:
  已建立: 45
  监听: 12

[磁盘IO信息]
───────────────────────────────────────────────────────────────────────────────
磁盘使用情况:
  /dev/sda1: 50G/200G (25%已用) 挂载点: /

[进程信息]
───────────────────────────────────────────────────────────────────────────────
TOP 10 CPU占用进程 (按CPU使用率排序):
  PID      USER     COMMAND             %CPU    RSS (KB/MB)
  1234     root     /usr/bin/app        15.20%  10240 KB (10.00 MB)
  ...

注意事项

  • 持续监控模式会占用终端,建议在 screentmux 中运行
  • 文件输出模式会追加内容,如需覆盖请先删除旧文件
  • 某些信息可能需要root权限才能获取完整数据

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

项目地址: https://github.com/ushell/topwho

About

Linux系统诊断工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages