如何备份Linux服务配置 systemd-preset保存设置

systemd-preset 是用于批量保存和恢复服务启用状态的工具。其核心用途包括:在部署或迁移时统一服务启停策略、备份当前服务状态、快速还原配置。操作步骤为:1. 使用 systemctl 命令导出已启用服务并生成 .preset 文件;2. 将文件保存至 /etc/systemd/system-preset/ 目录;3. 在目标系统上复制该文件并执行 systemd-preset –now apply 进行还原。注意事项包括:/etc 下的配置优先级高于 /usr/lib,可使用通配符匹配服务,避免修改默认文件以防升级覆盖,需手动处理服务模板实例。

如何备份Linux服务配置 systemd-preset保存设置

linux系统中,如果你需要批量保存或恢复systemd服务的启用/禁用状态,比如在迁移服务器或者重建环境时,systemd 自带的 systemd-preset 工具就非常实用。它能帮助你把当前服务的 preset 状态保存下来,并在其他系统上快速还原。

如何备份Linux服务配置 systemd-preset保存设置

下面是一些实际操作建议和使用技巧:

如何备份Linux服务配置 systemd-preset保存设置


什么是 systemd-preset?

systemd-preset 是 systemd 提供的一个命令行工具,用于根据预设规则决定哪些单元(unit)应该被启用或禁用。这些规则通常存储在 /usr/lib/systemd/system-preset/ 和 /etc/systemd/system-preset/ 目录下的 .preset 文件中。

它的典型用途包括:

如何备份Linux服务配置 systemd-preset保存设置

  • 在部署新系统时快速设置默认启用的服务
  • 统一多个服务器之间的服务启停策略
  • 备份当前系统的服务启用状态以便后续恢复

如何保存当前服务状态为 preset 文件?

你可以通过以下步骤将当前已启用或禁用的服务导出为一个 .preset 文件:

  1. 列出所有启用的服务:

    systemctl list-unit-files --type=service --state=enabled
  2. 生成 preset 文件内容(手动方式):

    可以写个小脚本自动提取这些服务名并加上 enable 指令,例如:

    systemctl list-unit-files --type=service --state=enabled | awk '{print $1}' | grep -v "@" | xargs -I {} echo "enable {}"
  3. 保存为 .preset 文件:

    把输出保存到 /etc/systemd/system-preset/your-config.preset 中,这样优先级更高。

  4. 应用新的 preset 设置(可选):

    systemd-preset --root=/ apply

    如果你在当前系统上运行,可以省略 –root=/。


如何在新系统中还原服务配置?

当你有了之前保存的 .preset 文件,可以在新系统中执行以下操作来还原服务启停状态:

  1. 将 .preset 文件复制到目标系统的 /etc/systemd/system-preset/ 目录下。

  2. 执行应用命令:

    sudo systemd-preset --now apply

    加上 –now 表示立即生效,否则只更新配置不触发动作。

注意:某些服务可能依赖特定软件包或配置文件,确保目标系统已安装相关组件。


常见问题与注意事项

  • 优先级问题:/etc/systemd/system-preset/ 下的配置会覆盖 /usr/lib/systemd/system-preset/ 的内容。
  • 通配符支持:可以在 .preset 文件中使用通配符,例如 enable *.service 来匹配一组服务。
  • 不推荐直接修改原始 preset 文件:最好新建一个自己的 .preset 文件,避免升级后被覆盖。
  • 服务模板(@xxx.service)处理:这类服务不会被默认列出,如果要启用实例,需显式指定,如 enable sshd@myinstance.service。

基本上就这些。掌握了 systemd-preset 的使用方法,你就可以更高效地管理和备份 Linux 系统中的服务启停状态了。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享