Linux 命令实战 · 第 8 章 服务、定时与服务管理 章节摘要:前七章讲的都是「当场敲、当场出结果」的命令。本章要讲的是「让它自己跑、自己定时跑、开机就跑」——服务管理。现代 Linux 几乎都采用 systemd 作为初始化系统(PID 1),所以 是你必须掌握的核心命令:启动、停止、重启、开机自启、查状态、看日志。配合 这个统一日志工具,你几乎能管理本机所有长期运行的服务。我们还要讲两类「让任务自己跑」的机制:定时任务( / )和用户管理( / / )——前者解决「每天凌晨备份」「每小时清理」这类周期任务,后者解决「谁能登录、能干什么」。读完本章,你能把一个程序变成「开机自启、出问题能查日志、按计划自动跑」的生产级服务,并理解 为什么是「受限提权」而非「直接给 root」。
章节摘要:前七章讲的都是「当场敲、当场出结果」的命令。本章要讲的是「让它自己跑、自己定时跑、开机就跑」——服务管理。现代 Linux 几乎都采用 systemd 作为初始化系统(PID 1),所以
systemctl是你必须掌握的核心命令:启动、停止、重启、开机自启、查状态、看日志。配合journalctl这个统一日志工具,你几乎能管理本机所有长期运行的服务。我们还要讲两类「让任务自己跑」的机制:定时任务(crontab/at)和用户管理(useradd/passwd/sudo)——前者解决「每天凌晨备份」「每小时清理」这类周期任务,后者解决「谁能登录、能干什么」。读完本章,你能把一个程序变成「开机自启、出问题能查日志、按计划自动跑」的生产级服务,并理解sudo为什么是「受限提权」而非「直接给 root」。
阅读完本章,你应当能够:
systemctl start/stop/restart/status/enable/disable 管理一个服务,理解 enable(开机自启)与 start(立即启动)是两件独立的事。systemctl status 的输出,判断服务是否在跑、最近一次启动的结果、最近的日志行。journalctl 查询系统与服务日志,掌握 -u(按服务)、-f(跟踪)、--since(时间范围)、-p(按级别)等过滤。crontab 的现代替代)。crontab -e 编写定时任务,读懂五段式时间表达式(分 时 日 月 周),并能写出「每天凌晨 3 点备份」这类规则。at 安排一次性定时任务,理解它与 cron(周期)的定位差别。useradd/passwd/usermod/userdel 管理用户,理解「用户、组、家目录、登录 shell」的关系。sudo 的权限模型(基于 /etc/sudoers 的白名单规则),理解为什么它比 su 直接切 root 更安全。systemd 是现代 Linux 的「大管家」:它管理服务(.service)、定时(.timer)、挂载(.mount)等一切「该长期存在的东西」,并用 journald 统一收集它们的日志。掌握
systemctl+journalctl,你就能管理本机 90% 的「自动运行」需求。
systemctl:服务的生杀大权systemctl start/stop/restart/status 是日常四大动作。重点讲清 enable/disable(开机自启开关)与 start/stop(立即启停)是两套独立的语义,以及 systemctl status 输出怎么读(绿色 active 还是红色 failed)。
journalctl:统一日志查询systemd 把所有服务日志收进 journald,用 journalctl 统一查。重点掌握:-u nginx(按服务)、-f(实时跟踪,类似 tail -f)、--since "1 hour ago"(时间范围)、-p err(按级别)、-e(跳到末尾)。
systemd 的管理对象叫「单元(unit)」,服务(.service)只是其一。讲清 .timer(定时器,systemd 对 cron 的现代化重做)、.socket(按需启动)、.mount(挂载点),以及 systemctl list-units/list-unit-files 看全貌。
crontab:传统定时任务crontab -e(编辑)、-l(列出)、-r(删除)。重点讲清五段式时间表达式(分 时 日 月 周)怎么读、怎么写「每天凌晨 3 点」「每 15 分钟」「每月 1 号」这类规则,以及 cron 环境变量与绝对路径的坑。
at:一次性定时任务at 解决「明天上午 9 点提醒」这类一次性任务,与 cron(周期)互补。讲清 at 09:00 tomorrow 的写法、atq/atrm 的查询删除。
useradd、passwd、usermod用户管理的完整闭环:useradd(建用户,讲清 -m 建家目录、-s 指定 shell)、passwd(设密码)、usermod(改属性,如加入组 -aG)、userdel -r(删用户连同家目录)。理解 /etc/passwd、/etc/shadow、/etc/group 三个文件。
sudo:受限提权sudo 不是「给你 root」,而是「按 /etc/sudoers 白名单,允许你以某身份执行某些命令」。讲清它的安全模型(可审计、可收回、可细粒度),为什么比 su 切 root 更安全,以及 sudo -l(看我能做什么)、visudo(安全编辑 sudoers)。
本章遵循「管服务 → 看日志 → 理单元 → 管定时 → 管用户」的递进路径,前三节是 systemd,中间两节是定时,最后两节是用户:
systemctl (01) ── 先学会启停与开机自启 │ ▼ journalctl (02) ── 出问题怎么查日志 │ ▼ 单元模型 (03) ── 理解 systemd 管的不止是服务 │ ▼ crontab (04) ── 传统周期定时任务 │ ▼ at (05) ── 一次性定时任务 │ ▼ useradd/passwd (06) ── 用户与组的管理 │ ▼ sudo (07) ── 受限提权的安全模型 │ ▼ 第 9 章:把所有命令组合成 Shell 脚本
前三节(systemd)是本章核心,构成「服务管理」的完整闭环;crontab/at(04-05)是另一种「自动运行」机制,与 systemd timer 形成新旧对照;用户与 sudo(06-07)是「谁能用这套系统」的权限收尾,呼应第 5 章的文件权限。
前置知识:
sudo 与用户管理建立其上)systemctl stop 本质是发信号)本章为后续章节奠定的基础:
crontab 是第 9 章(脚本)里「让脚本定时跑」的标准手段sudo 的权限模型延伸到容器、CI/CD 等场景的安全实践