用ps配合重定向可直接导出进程快照:ps aux导出全量信息,ps aux --sort=-%cpu/%mem按资源占用排序,ps -ef含ppid适合分析进程树;注意lang=c防乱码、加-w防命令截断、手动添加时间戳。

直接用 ps 配合重定向就能导出,不需要额外工具或脚本。
用 ps aux 导出完整进程快照
这是最常用、信息最全的方式,覆盖所有用户、所有终端、所有状态的进程:
-
ps aux > process_list.txt:导出为纯文本,适合人工查阅或后续 grep 处理 -
ps aux --sort=-%cpu > top_cpu_processes.txt:按 CPU 占用降序排列后导出,一眼看到谁在吃资源 -
ps aux --sort=-%mem > top_mem_processes.txt:同理,聚焦内存大户
注意:ps aux 默认不包含父进程 ID(PPID),如果需要追溯父子关系,得换用 ps -ef。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
用 ps -ef 导出含 PPID 的结构化列表
当你要分析进程启动链(比如某个服务拉起了哪些子进程)、排查僵尸进程源头,ps -ef 更合适:
-
ps -ef > process_tree_ready.txt:输出含PPID字段,可配合pstree -p交叉验证 - 字段顺序固定(UID, PID, PPID, C, STIME, TTY, TIME, CMD),方便用
awk或 Excel 拆分处理 - 若导出后发现中文乱码,说明终端 locale 和文件编码不一致,加
LANG=C前缀强制 ASCII 输出:LANG=C ps -ef > process_raw.txt
导出时容易忽略的三个细节
导出看似简单,但以下三点常导致结果不可用或误判:
- 别用
ps aux | grep xxx > file.txt:grep 自身会作为新进程出现在结果里,且过滤后丢失上下文,应先导出再本地搜索 - 时间戳缺失:
ps输出不含执行时刻,如需记录“何时导出”,手动加一行:echo "Snapshot taken at $(date)" > report.txt && ps aux >> report.txt - 长命令被截断:默认
COMMAND列宽度有限,部分进程名(如 Java 启动参数)会被省略为...[truncated]。解决方法是加-w参数强制宽屏:ps auxww > full_command_list.txt(两个w更可靠)
真正要复盘问题时,往往不是缺数据,而是导出时没保留足够上下文——比如没带 PPID、没排序、命令被截断,回头再跑一遍反而耽误事。










