进程管理与Python运维脚本入门
进程管理:服务器上的”任务管理器”
每个运行中的程序都是一个进程。Nginx 是进程、Docker 是进程、你的 SSH 连接也是进程。
ps — 查看进程
1 | |
| 列 | 含义 |
|---|---|
| USER | 谁启动的 |
| PID | 进程 ID(唯一编号) |
| %CPU | CPU 占用 |
| %MEM | 内存占用 |
| STAT | S=睡眠 R=运行 Z=僵尸 |
在你的服务器上跑 ps aux | grep nginx,能看到:
1 | |
top / htop — 实时监控
1 | |
htop 比 top 好太多,装上就不想用 top 了。
kill — 给进程发信号
1 | |
有趣的是,kill 不是”杀掉”的意思,是”发信号”。你每天用的 docker restart 本质就是给容器进程发 SIGHUP 信号。
systemd / systemctl — 管理后台服务
Linux 启动的第一个进程就是 systemd(PID=1)。它负责启动和管理所有后台服务。
1 | |
常用命令:
| 命令 | 作用 |
|---|---|
systemctl status |
看运行状态 |
systemctl start/stop/restart |
启/停/重启 |
systemctl enable/disable |
开/关 开机自启 |
你服务器上的服务层级:
1 | |
Nginx 日志分析脚本
运维经常被问:”昨天有多少人访问?404 最多的页面是什么?有没有人在扫服务器?”
写个脚本一键出报告:
1 | |
跑出来的结果很有意思——有人在扫你的服务器:
1 | |
公网 IP 就是这样,每分钟都有人敲门。fail2ban 挡住了 SSH,Nginx 挡不住 HTTP 扫描,但这种低水平扫描也不用担心——要是你有个正式 HTTPS 证书 + 域名,对方都不知道你 IP。
Python 运维脚本
Shell 脚本适合简单任务,逻辑一复杂就难读。Python 更适合写稍微复杂一点的脚本。
健康检查:Shell → Python
Shell 版:
1 | |
Python 版:
1 | |
同样的结果,但 Python 的变量名和 f"..." 格式化字符串比 Shell 可读太多。
网站监控脚本
用 Python 的 requests 库,几行代码就能定时检查网站是否活着:
1 | |
加到 crontab,每 30 分钟自动跑一次:
1 | |
现在你的自动化体系:
1 | |
总结
| 学到什么 | 命令/工具 |
|---|---|
| 进程查看 | ps top htop |
| 进程控制 | kill kill -9 |
| 服务管理 | systemctl start/stop/enable/status |
| 日志分析 | grep awk sort uniq -c |
| Python 运维 | os.popen requests f-string |
Shell 做小事快,Python 做复杂事清楚。两个都会,运维日常就够用了。
进程管理与Python运维脚本入门
https://bingsv.github.io/2026/07/04/进程管理与Python运维脚本入门/