进入 2 月份了,距离原来的服务器到期时间已经不足一个月了,今天打算将原来服务器的数据代码都迁移到新服务器上,这里使用 rsync
进行迁移
# rsync 介绍
rsync 是一个功能强大的工具,除了文件同步之外,还有许多其他的使用场景。以下是一些常见的 rsync 使用场景:
备份数据:rsync 可以用于定期备份数据,将文件从一个位置复制到另一个位置,以确保数据的安全性和可靠性。
远程文件同步:除了本地文件同步,rsync 还可以用于在本地和远程系统之间同步文件。它可以通过 SSH 协议安全地在不同主机之间同步文件。
增量备份:rsync 可以进行增量备份,仅传输发生更改的文件或部分文件,从而节省带宽和时间。
镜像网站:网站管理员可以使用 rsync 来镜像网站,将网站文件从一个服务器复制到另一个服务器,以提高可用性和性能。
文件分发:rsync 可以用于文件分发,将文件从一个地方分发到多个目的地,如分发软件包、更新文件等。
远程命令执行:rsync 还可以通过 SSH 在远程主机上执行命令,以便在远程系统上执行一系列操作。
多个文件同步:rsync 支持同步整个目录结构,而不仅仅是单个文件,这使得它在复制整个目录树时非常有用。
局域网文件同步:除了在 Internet 上进行文件同步,rsync 也可以在局域网中同步文件,以实现更快的速度和更低的延迟。
总的来说,rsync 是一个非常灵活和多用途的工具,可以满足许多不同的文件同步和数据备份需求,而且由于其高效的增量同步机制,使其在大多数情况下都表现出色。
# rsync 的安装
首先在 2 个服务器中都安装 rsync
直接使用 yum 或 dnf 安装即可
dnf install rsync |
# 配置 ssh 秘钥认证
第二步要配置 ssh 秘钥认证,需要在本地生成密钥对,然后将公钥添加到远程服务器的授权文件中,通常在 ~/.ssh/authorized_keys
生成密钥对使用以下命令
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
提示是否要生成密码,直接回车即可
查看这个文件 cat ~/.ssh/id_rsa.pub
将内容复制下来,到远程服务器的 ~/.ssh/authorized_keys
文件中,保存
这样就可以使用 ssh 秘钥进行认证了
# 使用 rsync 同步文件
接下来就是同步文件了,使用以下命令
rsync -avz /本地/目录/ user@remote_host:/远程/目录/ |
- -a:表示以归档模式进行同步,保持文件属性和目录结构。
- -v:表示详细模式,输出详细的同步信息。
- -z:表示启用压缩传输,可以加快传输速度,特别是在较慢的网络上。
- / 本地 / 目录 /:指定要同步的本地目录的路径。
- user@remote_host:/ 远程 / 目录 /:指定目标目录的路径,格式为用户名 @远程主机 IP 或域名:/ 远程目录路径。
如果是将远程服务器上的文件同步到本地,则命令颠倒过来即可
rsync -avz user@remote_host:/远程/目录/ /本地/目录/ |
这样就可以将原来的服务器中的内容同步到本地了
2 个服务器采用内网传输,速度飞快
rsync -avz root@172.17.16.13:/home/java/lng_backend /home/java | |
... | |
... | |
... | |
sent 25,628 bytes received 115,916,872 bytes 7,996,034.48 bytes/sec | |
total size is 149,859,811 speedup is 1.29 |
使用 rsync 同步文件还可以使用 --exclude
参数,可以排除不需要同步的文件,例如排除 node_modules
目录
rsync -avz --exclude 'node_modules' root@172.17.16.13:/home/www/lng_pc ./ |