1.环境说明及准备
两台Linux服务器,信息如下:
服务器类型 | 操作系统版本 | IP地址 |
---|---|---|
源服务器 | RHEL 9 | 192.168.0.150 |
目标服务器 | RHEL 9 | 192.168.0.152 |
注:源服务器即需要被克隆至目标服务器的原始系统。
开始操作前,请确保满足以下先决条件:
- 两台服务器必须运行相同版本的操作系统(例如,均为
RHEL 9.x
或RHEL 8.x
等) - 服务器需配置完全一致的文件系统及硬盘结构(例如,均为单盘或相同的RAID阵列)
重要提示:
执行热克隆前,请停用所有涉及数据写入或传输的服务(如数据库、邮件服务等)。
另外,现代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.同步后操作
同步完成后,重启目标服务器,使同步变更生效。
使用源服务器凭证登录,验证克隆结果是否正常和完整。
退役旧服务器(可选),此时目标服务器已是完整镜像。