在 Debian(以及其他 Linux 发行版)中,导出进程信息有多种方式,取决于你想要什么格式、用途(排查问题、备份、分析等)。下面按常见需求分类说明。
ps 命令ps aux > processes.txt
或只看进程树:
ps -ejH > processes_tree.txt
说明:
a:所有用户进程u:显示用户等信息x:包括无终端的进程top(实时快照)top -b -n 1 > top_snapshot.txt
-b:批处理模式-n 1:只输出一次ps 输出为 CSVps -eo pid,ppid,user,%cpu,%mem,comm --no-headers | \
awk '{print $1","$2","$3","$4","$5","$6}' > processes.csv
proc 文件系统(最底层)ls /proc > proc_list.txt
每个数字目录就是一个 PID,例如:
cat /proc/1234/status > process_1234.txt
cat /proc/$(pidof nginx)/status
或一次性导出所有进程信息:
for p in /proc/[0-9]*; do
echo "=== $p ==="
cat $p/status
done > all_process_status.txt
htop(需安装)apt install htop
在 htop 中按 F5(树形) → F10 退出
(htop 本身不支持直接导出,可配合 script 命令)
script -c "htop" htop_output.txt
systemd 查看服务进程systemctl status > systemd_status.txt
查看某个服务:
systemctl status ssh > ssh_status.txt
{
echo "=== date ==="
date
echo "=== ps aux ==="
ps aux
echo "=== top ==="
top -b -n 1
} > system_process_dump.txt
jq + /procps -eo pid,comm,%cpu,%mem --no-headers | \
awk '{print "{\"pid\":\""$1"\",\"name\":\""$2"\",\"cpu\":\""$3"\",\"mem\":\""$4"\"}"}' | \
jq -s '.' > processes.json
| 需求 | 推荐命令 |
|---|---|
| 快速查看 | ps aux |
| 文本备份 | ps aux > file |
| 结构化分析 | CSV / JSON |
| 深度调试 | /proc/PID/status |
| 系统服务 | systemctl status |
如果你能说明用途(如:排查卡死、写报告、迁移服务器、安全审计),我可以给你更精确的命令。