如何在 Linux 中对 /etc 目录进行版本控制如何在 Linux 中对 /etc 目录进行版本控制如何在 Linux 中对 /etc 目录进行版本控制如何在 Linux 中对 /etc 目录进行版本控制
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中对 /etc 目录进行版本控制

在 Linux 中,/etc 目录包含重要的系统相关或特定于应用程序的配置文件。特别是在服务器环境中,明智的做法是定期备份位于 /etc 中的各种服务器配置文件,以避免目录中意外更改带来的麻烦,或帮助重新安装必要的软件包。通常建议使用 ACL 工具保护 /etc 的内容,以防止未经授权的更改。更好的是,最好对 /etc 目录中的所有内容进行版本控制,以便您可以跟踪配置更改,或者在需要时从以前的配置状态恢复。

etckeeper 是用于版本控制内容的工具集合,特别是在 /etc 目录中。 etckeeper 使用现有的版本控制系统(例如,git、bzr、mercurial 或 darcs)将版本历史记录存储在相应的后端存储库中。 etckeeper 的优点是它与软件包管理器(例如 apt、yum)集成,可以在软件包安装、升级或删除过程中自动提交对 /etc 目录所做的任何更改。

在本教程中,我将描述如何使用etckeeper对/etc目录进行版本控制。在这里,我将配置 etckeeper 以使用 bzr 作为后端版本控制存储库。

在 Linux 上安装 etckeeper

要在 Ubuntu、Debian 或 Mint 上安装 etckeeper 和 bzr:


$ sudo apt-get install etckeeper bzr

要在 CentOS 或 RHEL 上安装 etckeeper 和 bzr,首先设置 EPEL 存储库,然后运行:


$ sudo yum install etckeeper etckeeper-bzr

要在 Fedora 上安装 etckeeper 和 bzr,只需运行:


$ sudo yum install etckeeper etckeeper-bzr

设置并初始化 etckeeper

安装etckeeper后要做的第一件事是编辑其配置文件。您可以将其他选项保留为默认值。


$ sudo vi /etc/etckeeper/etckeeper.conf

# The VCS to use.
VCS="bzr"

# Avoid etckeeper committing existing changes to /etc automatically once per day.
AVOID_DAILY_AUTOCOMMITS=1

现在继续初始化 etckeeper,如下所示。


$ sudo etckeeper init

此时,/etc 目录中的所有内容都已添加到后端 bzr 存储库中。但请注意,添加的内容尚未提交。您需要手动提交操作,或者使用标准包管理器(例如 apt 或 yum)安装/升级任何包,这将自动触发第一次提交。在这里,我将手动执行第一次提交,如下所示。


$ sudo etckeeper commit "initial commit"

etckeeper 示例

要检查 /etc 目录的状态,请运行以下命令。这将显示自最新版本以来对 /etc 目录所做的任何(未提交)更改。


$ sudo etckeeper vcs status

要显示 /etc 的最新版本和当前状态之间的差异:


$ sudo etckeeper vcs diff /etc

提交 /etc 目录的当前(已更改)状态:


$ sudo etckeeper commit "any comment"

要检查整个 /etc 目录或特定文件/子目录的提交历史记录:


$ sudo etckeeper vcs log
$ sudo etckeeper vcs log /etc/sysconfig/*

要检查两个特定修订版(修订版号 1 和 3)之间的差异:


$ sudo etckeeper vcs diff -r1..3

要查看特定修订版(例如修订版号 3)所做的更改:


$ sudo etckeeper vcs diff -c3

要将 /etc 目录的内容恢复到特定修订版(例如,修订版号 2):


$ sudo etckeeper vcs revert --revision 2 /etc

由 etckeeper 自动提交

如前所述,作为软件包安装或升级的一部分,etckeeper 自动提交对 /etc 所做的更改。在此示例中,我尝试安装 Apache HTTP Server 作为测试。


$ sudo yum install httpd

要查看包安装自动生成的提交历史记录:


$ sudo etckeeper vcs log

------------------------------------------------------------
revno: 5
committer: dan 
branch nick: fedora /etc repository
timestamp: Mon 2013-08-05 06:39:33 -0400
message:
  committing changes in /etc after yum run
  
  Package changes:
  +0:apr-1.4.6-3.fc18.x86_64
  +0:apr-util-1.4.1-6.fc18.x86_64
  +0:httpd-2.4.4-3.fc18.x86_64
  +0:httpd-tools-2.4.4-3.fc18.x86_64
------------------------------------------------------------

要查看软件包安装在 /etc 目录中所做的更改:


$ sudo etckeeper vcs diff -c5
©2015-2025 艾丽卡 support@alaica.com