如何使用Mercurial仅备份指定系统文件并完成仓库相关操作
使用Mercurial备份分散系统配置与目录的实操指南
一、选对仓库初始化位置,避免麻烦
我建议你在自己的用户目录下创建一个专门的备份仓库,比如~/system-config-backup。这么做的好处是:既不会和系统自带文件混在一起,还能避开系统目录的权限限制(毕竟/etc这类目录的操作通常需要root权限,放在用户目录下日常维护更自由)。
初始化仓库的命令很简单:
# 创建并进入专属备份目录 mkdir -p ~/system-config-backup cd ~/system-config-backup # 初始化Mercurial仓库 hg init
二、添加分散文件:复刻系统结构更省心
为了后续恢复时少踩坑,最好在仓库里复刻系统的目录结构——比如把/etc/ssh/sshd_config放到仓库的etc/ssh/文件夹下,这样克隆到新系统后,直接复制整个目录到根目录就能完成恢复,不用逐个文件找位置。
具体操作步骤:
- 先在仓库里搭建对应目录结构:
mkdir -p etc/ssh etc/fail2ban var/www .local/bin .config
- 把需要备份的文件/目录复制到仓库的对应位置:
# 复制单个系统配置文件 cp /etc/ssh/sshd_config etc/ssh/ cp /etc/fail2ban/jail.local etc/fail2ban/ # 复制整个目录(保留原有内容) cp -r /var/www/* var/www/ cp -r ~/.local/bin/* .local/bin/ cp -r ~/.config/* .config/
- 将这些文件添加到Mercurial的跟踪列表:
# 一次性添加所有文件(推荐) hg add . # 或者精确指定要添加的内容 hg add etc/ssh/sshd_config etc/fail2ban/jail.local var/www/ .local/bin/ .config/
三、提交备份内容,完成第一次快照
添加完成后,就可以提交这份备份了,记得写清楚提交信息,方便后续查看版本历史:
hg commit -m "Initial backup: sshd/fail2ban configs + web files + user local apps/configs"
四、后续维护:更新备份的正确姿势
之后如果这些配置文件或目录有修改,你可以:
- 要么直接在仓库的对应目录里修改,再同步回系统路径;
- 要么先修改系统里的文件,再复制到仓库对应的位置。
完成修改后,执行提交命令即可:
hg commit -m "Update sshd_config: disabled password authentication"
五、新系统恢复:一步到位的小技巧
当你在新系统上克隆完这个仓库后,只需要把仓库里的内容复制回系统对应路径:
# 假设仓库已克隆到~/system-config-backup sudo cp -r ~/system-config-backup/etc/* /etc/ sudo cp -r ~/system-config-backup/var/www/* /var/www/ cp -r ~/system-config-backup/.local/bin/* ~/.local/bin/ cp -r ~/system-config-backup/.config/* ~/.config/
内容的提问来源于stack exchange,提问作者nightcod3r
相关产品推荐
相关产品推荐

