本文目录导读:

- 核心思路:使用
top的-b(批处理)和-n(次数)参数 - 场景1:一次性抓取当前系统资源消耗 Top 10
- 场景2:定时持续采集(如每5秒采集一次,共10次)
- 场景3:结合 Shell 脚本循环采集(更灵活)
- 场景4:抓取特定资源占用(如 CPU、内存)
- 场景5:如果
top输出太长,可转换为 CSV 格式(便于导入 Excel) - 常见问题与注意事项
- 实操示例:脚本中快速获取 CPU Top5
在脚本中进行“Top性能查看”的批处理,通常指以非交互方式运行 top 命令,将结果输出到文件或传递给其他命令,这避免了 top 全屏刷新的交互模式。
以下是几种常用的批处理方法,适用于 Linux/Unix 环境:
核心思路:使用 top 的 -b(批处理)和 -n(次数)参数
top -b -n 1
参数说明:
-b:批处理模式,输出纯文本,不会清屏。-n N:运行 N 次后自动退出(-n 1只抓取一次快照)。
场景1:一次性抓取当前系统资源消耗 Top 10
输出到终端:
top -b -n 1 | head -20
这会显示:系统概况(前5行) + 进程列表的前15行。
输出到文件(用于定时记录):
top -b -n 1 > /tmp/top_snapshot_$(date +%Y%m%d_%H%M%S).log
场景2:定时持续采集(如每5秒采集一次,共10次)
基础用法:
top -b -n 10 -d 5 > /var/log/top_performance.log
-d 5:采集间隔5秒(默认3秒)。-n 10:共采集10次。
进阶:只保留进程列表(去掉系统汇总信息):
top -b -n 1 -o %CPU | tail -n +8 > only_processes.log
-o %CPU:按 CPU 使用率排序(也可用%MEM)。tail -n +8跳过前7行(系统负载、CPU、内存、Swap、进程统计等汇总信息)。
场景3:结合 Shell 脚本循环采集(更灵活)
#!/bin/bash
# 文件名: monitor_top.sh
while true
do
echo "===== Top Snapshot at $(date) =====" >> /var/log/top_continuous.log
top -b -n 1 -o %CPU | head -15 >> /var/log/top_continuous.log
echo "" >> /var/log/top_continuous.log
sleep 10
done
启动脚本:nohup bash monitor_top.sh &
场景4:抓取特定资源占用(如 CPU、内存)
按内存排序,只显示进程 Top 10:
# 方法1:直接使用 top
top -b -n 1 -o %MEM | head -20
# 方法2:结合 awk(更易解析,但会丢失进程状态等列)
top -b -n 1 | awk 'NR>7 && NR<18 {print $1, $9, $10, $12}'
# 说明:NR>7 跳过汇总,NR<18 取前10个进程(第8-17行)
场景5:top 输出太长,可转换为 CSV 格式(便于导入 Excel)
# 定义函数:将 top 输出转为 CSV
top_to_csv() {
top -b -n 1 | awk 'NR>7 {print $1","$2","$9","$10","$12","$13}'
}
top_to_csv > process_snapshot.csv
注意:top 输出的列数可能因版本而异,建议先运行一次查看列号。
常见问题与注意事项
head -20的结果:top -b -n 1默认按 CPU 排序,但head只截取前几行,未显示完整列表,如果只想看某一资源占用 Top N,需用-o排序。-o选项:并非所有版本的top都支持-o,如果系统不支持,可用top -b -n 1 | sort -k9 -rn代替(但会丢失top的列对齐和标题行)。- 系统负载信息不完整:
head -20只显示前20行,若需完整进程列表,去掉head。 - 如果使用
htop:htop的批处理模式是--batch,用法类似:htop -C --batch --delay=5
实操示例:脚本中快速获取 CPU Top5
#!/bin/bash
# 获取 CPU占用最高的前5个进程
echo "Top 5 CPU users:"
top -b -n 1 -o '%CPU' | awk 'NR>7 && NR<13 {printf "%-20s CPU:%-5s MEM:%-5s CMD:%-30s\n", $1, $9, $10, $12}'
# 获取内存占用最高的前5个进程
echo "Top 5 Memory users:"
top -b -n 1 -o '%MEM' | awk 'NR>7 && NR<13 {printf "%-20s CPU:%-5s MEM:%-5s CMD:%-30s\n", $1, $9, $10, $12}'
- 抓取一次快照:
top -b -n 1 - 持续采集:
top -b -n N -d S - 按资源排序:
-o %CPU或-o %MEM - 输出到文件:使用
>重定向
根据你的具体需求(是一次性查看、后台监测还是日志记录),选择合适的参数组合即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播