进入 2 月份了,距离原来的服务器到期时间已经不足一个月了,今天打算将原来服务器的数据代码都迁移到新服务器上,这里使用 rsync 进行迁移

# rsync 介绍

rsync 是一个功能强大的工具,除了文件同步之外,还有许多其他的使用场景。以下是一些常见的 rsync 使用场景:

  • 备份数据:rsync 可以用于定期备份数据,将文件从一个位置复制到另一个位置,以确保数据的安全性和可靠性。

  • 远程文件同步:除了本地文件同步,rsync 还可以用于在本地和远程系统之间同步文件。它可以通过 SSH 协议安全地在不同主机之间同步文件。

  • 增量备份:rsync 可以进行增量备份,仅传输发生更改的文件或部分文件,从而节省带宽和时间。

  • 镜像网站:网站管理员可以使用 rsync 来镜像网站,将网站文件从一个服务器复制到另一个服务器,以提高可用性和性能。

  • 文件分发:rsync 可以用于文件分发,将文件从一个地方分发到多个目的地,如分发软件包、更新文件等。

  • 远程命令执行:rsync 还可以通过 SSH 在远程主机上执行命令,以便在远程系统上执行一系列操作。

  • 多个文件同步:rsync 支持同步整个目录结构,而不仅仅是单个文件,这使得它在复制整个目录树时非常有用。

  • 局域网文件同步:除了在 Internet 上进行文件同步,rsync 也可以在局域网中同步文件,以实现更快的速度和更低的延迟。

总的来说,rsync 是一个非常灵活和多用途的工具,可以满足许多不同的文件同步和数据备份需求,而且由于其高效的增量同步机制,使其在大多数情况下都表现出色。

# rsync 的安装

首先在 2 个服务器中都安装 rsync

直接使用 yum 或 dnf 安装即可

h
dnf install rsync

# 配置 ssh 秘钥认证

第二步要配置 ssh 秘钥认证,需要在本地生成密钥对,然后将公钥添加到远程服务器的授权文件中,通常在 ~/.ssh/authorized_keys

生成密钥对使用以下命令

h
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

提示是否要生成密码,直接回车即可

查看这个文件 cat ~/.ssh/id_rsa.pub

将内容复制下来,到远程服务器的 ~/.ssh/authorized_keys 文件中,保存

这样就可以使用 ssh 秘钥进行认证了

# 使用 rsync 同步文件

接下来就是同步文件了,使用以下命令

h
rsync -avz /本地/目录/ user@remote_host:/远程/目录/
  • -a:表示以归档模式进行同步,保持文件属性和目录结构。
  • -v:表示详细模式,输出详细的同步信息。
  • -z:表示启用压缩传输,可以加快传输速度,特别是在较慢的网络上。
  • / 本地 / 目录 /:指定要同步的本地目录的路径。
  • user@remote_host:/ 远程 / 目录 /:指定目标目录的路径,格式为用户名 @远程主机 IP 或域名:/ 远程目录路径。

如果是将远程服务器上的文件同步到本地,则命令颠倒过来即可

h
rsync -avz user@remote_host:/远程/目录/ /本地/目录/

这样就可以将原来的服务器中的内容同步到本地了

2 个服务器采用内网传输,速度飞快

h
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 目录

h
rsync -avz --exclude 'node_modules' root@172.17.16.13:/home/www/lng_pc ./

# 结束

请我喝杯[咖啡]~( ̄▽ ̄)~*

一个放羊娃 微信支付

微信支付

一个放羊娃 支付宝

支付宝