前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Rsync同步备份两个web服务器文件

使用Rsync同步备份两个web服务器文件

作者头像
入门笔记
发布2022-06-02 15:40:54
1.2K0
发布2022-06-02 15:40:54
举报
文章被收录于专栏:入门小站

同步Web服务器的优势

使用rsync创建Web服务器备份的主要优点如下:

  1. Rsync仅同步那些已更改的字节和数据块。
  2. Rsync能够检查和删除备份服务器上已从主Web服务器中删除的那些文件和目录。
  3. 它在远程复制数据时处理权限、所有权和特殊属性。
  4. 它还支持SSH协议以加密方式传输数据,让你放心所有数据都是安全的。
  5. Rsync在传输数据时使用压缩和解压缩方法,消耗更少的带宽。

如何同步两个Web服务器

设置rsync以创建Web服务器的镜像。我将使用两台服务器。

主服务器
  1. IP Address: 192.168.1.111
  2. Hostname: webserver.rumenz.com
备份服务器
  1. IP Address: 192.168.1.112
  2. Hostname:backup.rumenz.com
第 1 步:安装Rsync工具
代码语言:javascript
复制
[root@rumenz]# yum install rsync        [On Red Hat based systems]
[root@rumenz]# apt-get install rsync    [On Debian based systems]
第 2 步:创建一个用户来运行Rsync

我们可以设置 rsyncroot用户,但出于安全原因,你可以在主网络服务器上创建一个非特权用户,即webserver.rumenz.com运行 rsync。

代码语言:javascript
复制
[root@rumenz]# useradd rumenz
[root@rumenz]# passwd rumenz

在这里我创建了一个用户 rumenz 并为用户分配了密码。

第 3 步:测试 Rsync 设置

测试 rsync 设置了(backup.rumenz.com) 并要执行此操作,请键入以下命令。

代码语言:javascript
复制
[root@backup www]# rsync -avzhe ssh rumenz@webserver.rumenz.com:/var/www/ /var/www
输出
代码语言:javascript
复制
rumenz@webserver.rumenz.com's password:

receiving incremental file list
sent 128 bytes  received 32.67K bytes  5.96K bytes/sec
total size is 12.78M  speedup is 389.70

你可以看到你的 rsync 现在工作正常并且正在同步数据。我用过了 /var/www 转移;你可以根据需要更改文件夹位置。

第 4 步:使用SSH无密码登录自动同步

已经完成了 rsync 设置,现在是时候设置一个cron对于 rsync。因为我们将使用rsync与SSH协议,ssh 将要求进行身份验证. 为了让cron顺利工作,我们需要设置passwordless ssh logins对于 rsync。

在这个例子中,我这样做root保存file ownerships同样,你也可以为其他用户执行此操作。

首先,我们将生成一个publicprivate在备份服务器上使用以下命令键(即backup.rumenz.com)。

代码语言:javascript
复制
[root@backup]# ssh-keygen -t rsa -b 2048

输入此命令时,请不要提供密码,然后按回车键Empty passphrase这样 rsync cron 就不需要任何密码来同步数据。

样本输出
代码语言:javascript
复制
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 root@backup.exmple.com
The key's randomart image is:
+--[ RSA 2048]----+
|          .o.    |
|           ..    |
|        ..++ .   |
|        o=E *    |
|       .Sooo o   |
|       =.o o     |
|      * . o      |
|     o +         |
|    . .          |
+-----------------+

我们的PublicPrivate密钥已生成,我们必须与主服务器共享它,以便主 Web 服务器能够识别此备份机器,并允许它在同步数据时无需输入任何密码即可登录。

代码语言:javascript
复制
[root@backup html]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@webserver.rumenz.com

现在尝试登录服务器,使用 ssh root@webserver.rumenz.com,然后签入.ssh/authorized_keys.

代码语言:javascript
复制
[root@backup html]# root@webserver.rumenz.com

现在,我们完成了共享密钥。要更深入地了解SSH password less login

第5步:设置Cron以自动同步

我们为此设置一个 cron。要设置 cron,请使用以下命令打开 crontab 文件。

代码语言:javascript
复制
[root@backup ~]# crontab –e

它将打开 /etc/crontab 文件以使用你的默认编辑器进行编辑。在此示例中,我正在编写一个 cron,每5分钟运行一次以同步数据。

代码语言:javascript
复制
*/5  *  *  *  *   rsync -avzhe ssh root@webserver.rumenz.com:/var/www/ /var/www/

上面的 cron 和 rsync 命令只是同步 /var/www/ 从主要web serverbackup server在每一个5 minutes.你可以根据需要更改时间和文件夹位置配置。

相关文章

linux之rsync远程同步文件

linux中rsync命令的10个实际示例

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 同步Web服务器的优势
  • 如何同步两个Web服务器
    • 主服务器
      • 备份服务器
        • 第 1 步:安装Rsync工具
          • 第 2 步:创建一个用户来运行Rsync
            • 第 3 步:测试 Rsync 设置
              • 输出
            • 第 4 步:使用SSH无密码登录自动同步
              • 样本输出
            • 第5步:设置Cron以自动同步
            相关产品与服务
            云服务器
            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档