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 <关键词>

标签: none

添加新评论