Systemd定时任务常用运维命令
Systemd 定时任务常用运维命令速查笔记
在管理 Linux 定时服务(如 Podman 容器定时启停)时,常用命令可分为 配置加载、定时器管理、服务状态检查 以及 日志排查 四个类别。
一、配置加载与启用命令
1. 重新加载配置文件
systemctl daemon-reload
- 作用:当新建、修改或删除
/etc/systemd/system/目录下的.service或.timer文件后,必须执行此命令,通知 Systemd 重新读取磁盘上的配置文件。
2. 启用并立即激活定时器/服务
systemctl enable --now <服务或定时器名称>
- 作用:
enable:设置开机自启(在系统对应的 target 目录下创建软链接)。--now:无需等到下次重启,立即激活该服务或定时器。- 示例:
systemctl enable --now ql.timer
二、定时器查看命令
3. 查看系统所有定时器状态
systemctl list-timers
- 作用:列出系统中所有已注册的定时任务调度状态。
- 关键输出字段说明:
- NEXT:下一次触发的具体时间。
- LEFT:距离下一次触发还剩多少时间。
- LAST:上一次触发的时间。
- PASSED:距离上一次触发已过去多久。
- UNIT:定时器文件名(如
ql.timer)。 - ACTIVATES:该定时器所触发的服务名称(如
ql.service)。
三、服务状态排查命令
4. 查看服务的详细状态快照
#-l 不裁切显示日志
systemctl status ql.service -l
#加-l后--no-pager显示长日志,不加-l后--no-pager还是显示短日志(分页器(less)管的是屏幕显示)
#加 --no-pager 参数(直接打印全文到屏幕)
systemctl status ql.service -l --no-pager
- 作用:查看指定服务的当前运行状态(运行中/失败/已停止)、主进程 PID、内存与 CPU 占用,并在末尾显示最近几行系统日志。
- 参数说明:
-l(或--full):完整显示单行内容。若日志或启动命令超长,加上此参数可防止右侧关键文本被截断。- 特点:此命令输出的是静态状态,运行后会立即退出,不是实时刷新的日志。
实际上,systemctl status 底部展示的那几行日志,本质上就是 systemd 自动帮你调用 journalctl 截取出来的。两者使用的是同一个日志数据库(systemd-journald)。
四、日志查看与追踪命令
5. 实时追踪指定服务的日志输出
journalctl -u ql.service -f
- 作用:持续跟踪并实时滚屏打印指定服务的日志。
- 参数说明:
-u ql.service:指定只查看ql.service这个单元产生的日志。-f(--follow):类似于tail -f,终端会保持挂起,只要该服务产生新日志就会实时显示。按下Ctrl + C可退出。
6. 查看系统最新的 50 条日志
journalctl -n 50
- 作用:按时间顺序输出系统全局(含内核、网络、Podman 及所有服务)最近产生的 50 条日志。
- 参数说明:
-n 50(或--lines=50):限制仅显示最新的 50 行日志。
五、常用组合用法总结
- 修改配置文件后:
systemctl daemon-reload->systemctl restart <服务名> - 排查服务为什么报错:
systemctl status <服务名> -l看状态,结合journalctl -u <服务名> -n 50看最近报错日志。 - 确认定时器是否生效:
systemctl list-timers | grep <关键词>