Skip to content

如何使用 Rsync 克隆一台 Linux 服务器

发表: at 11:00

1.环境说明及准备

两台Linux服务器,信息如下:

服务器类型操作系统版本IP地址
源服务器RHEL 9192.168.0.150
目标服务器RHEL 9192.168.0.152

源服务器即需要被克隆至目标服务器的原始系统。

开始操作前,请确保满足以下先决条件:

重要提示:

执行热克隆前,请停用所有涉及数据写入或传输的服务(如数据库、邮件服务等)。

另外,现代Linux系统已经预装了rsync,不需要安装,可以通过运行以下命令来检查安装的rsync版本:

$ rsync --version

或者查看更详细的信息:

$ rpm -qi rsync               [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ dpkg-query --status rsync   [On Debian, Ubuntu and Mint]

图片

以上完成了整台服务器克隆前的准备工作,下面开始进行副本克隆。

2.配置源Linux服务器

在克隆过程中,部分目录和文件可能无需同步(例如目标服务器已存在或自动生成的临时文件),包括 /boot/tmp/dev 等目录。

因此,首先在在源服务器上创建 /root/exclude-files.txt 文件,并添加以下内容:

/boot
/dev
/tmp
/sys
/proc
/backup
/etc/fstab
/etc/mtab
/etc/mdadm.conf
/etc/sysconfig/network*

3.克隆Linux服务器

完成上面步骤,使用下面命令将源服务器除排除的文件外将所有文件同步到远程或目标服务器:

$ sudo rsync -vPa -e 'ssh -o StrictHostKeyChecking=no' --exclude-from=/root/exclude-files.txt / REMOTE-IP:/

图片

上面命令使用rsync同步从源服务器到目标服务器的所有内容,同时排除我们之前定义的文件和目录。

关于这条命令中每项的功能,为便于理解,现以表格形式分别解释,如下命令参数解析

参数/选项说明
sudo以管理员权限执行命令
rsync文件同步与传输工具
-v显示详细同步过程(verbose模式)
-P等同于 --progress,显示文件传输进度并支持断点续传
-a归档模式(保留文件权限、所有者、时间戳等属性)
-e 指定要用于同步的远程 shell
-o StrictHostKeyChecking=no禁用严格的主机密钥检查,这意味着如果远程服务器的主机密钥未知,SSH 连接将不会提示确认
--exclude-from=/root/exclude-files.txt指定需排除的目录/文件列表(即之前创建的排除规则文件)
/源服务器根目录(同步起点)
REMOTE-IP:/指定目标服务器的IP地址或主机名,后跟冒号和正斜杠。它指示将复制克隆文件的远程目录

4.同步后操作

同步完成后,重启目标服务器,使同步变更生效。

使用源服务器凭证登录,验证克隆结果是否正常和完整。

退役旧服务器(可选),此时目标服务器已是完整镜像。


上篇文章
从零搭建个人邮局服务器
下篇文章
Softmax、熵与玻尔兹曼:一条从比特到粒子的概率之路