Centos7 使用rsync 实现多服务器文件同步

rsync(remote synchronize )是一个远程文件同步工具,支持多个操作系统,用于在多台服务器之间同步目录和文件。rsync采用增量传输文件的方法,只传输新文件和修改过的文件,而不是每次都全部传输,效率比较高。

rsync有以下特点:

1)支持目录和文件的上传和下载功能;

2)可以镜像保存整个目录树和文件系统;

3)传输效率高,只传输新增和修改过的文件。


一、服务端1(192.168.0.146):

  1. 安装软件:
    yum -y install rsync
  2. 创建需同步的目录:
    mkdir -p  /data
  3. 编辑配置文件:vim /etc/rsyncd.conf 
    transfer logging = no
    #rsync服务运行日志文件,注意,日志文件日积月累,必须保证有足够的磁盘空间
    log file = /var/log/rsyncd.log
    port = 873
    #服务端操作系统的用户可以不用root
    fake super = yes
    address = 192.168.0.146
    #服务端操作系统的用户
    uid = luhuaxiang
    #服务端操作系统的用户组
    gid = luhuaxiang
    #关闭假根功能
    use chroot = no
    read only = no
    #客户端最大连接数
    max connections = 100
    #模块名称,自定义的名称,不一定要与同步目录相同
    [common]
    #模块说明文字
    comment = hi,luhuaxiang
    #同步的目录名
    path = /data
    ignore errors
    #指定允许登录的客户端认证用户清单,多用户用逗号分隔
    auth users = luhuaxiang
    #定义rsync客户端用户认证的密码文件
    secrets file = /etc/rsyncd.secrets
    list = false
        
  4. 创建用户密码: 
    echo  "luahuaxiang:123456"  >  /etc/rsyncd.secrets
    chmod  600  /etc/rsyncd.secrets
  5. 配置防火墙规则:默认873端口
    iptables  -I  INPUT  -p  tcp  --dport  873  -j  ACCEPT
    当然也可以直接关闭防火墙
    #临时关闭防火墙
    systemctl stop firewalld service
    #开机禁止防火墙
    systemctl disable firewalld.service
    #开机启动防火墙
    systemctl enable firewalld.service

  6. 关闭SELINUX,修改vim /etc/selinux/config文件,把SELINUX参数的值改为disabled,重启系统或执行 setenforce 0 使修改马上生效。

二、服务端2(192.168.0.147):

       (步骤同上,配置文件修改IP即可)

三、客户端(192.168.0.148):        

  1.  安装软件:
    yum -y install rsync
  2. 创建需同步的目录:
    mkdir -p  /data/server1
    mkdir -p  /data/server2
  3. 创建密码文件(免输入密码):
    echo  "123456" > /etc/rsync.passwd
    chmod 600 /etc/rsync.passwd

  4. 测试同步服务器文件
    rsync -avz --password-file=/etc/rsync.passwd  luhuaxiang@192.168.0.146::common  /data/server1

     查看server1目录文件同步成功。

四、实现定时自动同步

      创建一个需要定时执行的脚本文件,如:run.sh脚本:vim  /etc/run.sh  (路径自己设置的),在此脚本中添加如下内容

rsync -auv --password-file=/etc/rsync.passwd  luhuaxiang@192.168.0.146::common  /data/server1
rsync -auv --password-file=/etc/rsync.passwd  luhuaxiang@192.168.0.147::common  /data/server2

设置脚本执行的时间:crontab –e,添加如下内容  

# 这里是1分钟执行一次,根据需要修改
*/1 * * * * /etc/run.sh

两台服务器正常同步成功:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 CentOS 7 上使用 rsync 同步 cpan 的 Perl 依赖库的步骤: 1. 安装 rsync 首先,您需要在本地计算机上安装 rsync。如果您已经安装了 rsync,则可以跳过此步骤。 在 CentOS 7 上,您可以使用以下命令安装 rsync: ``` sudo yum install rsync ``` 2. 创建本地目录 接下来,您需要创建一个目录来保存 Perl 依赖库。在本示例中,我们将在 /opt 目录下创建一个名为 perl_lib 的目录。 ``` sudo mkdir /opt/perl_lib ``` 3. 同步远程目录 现在,您可以使用 rsync 命令将远程 Perl 依赖库同步到本地目录中。假设您的远程服务器 IP 地址为 192.168.1.100,则可以使用以下命令同步: ``` sudo rsync -avz --delete --exclude='.packlist*' root@192.168.1.100:/usr/local/lib/perl5/ /opt/perl_lib/ ``` 此命令执行以下操作: - `-a`:以归档模式同步文件和目录(等同于 `-rlptgoD`)。 - `-v`:显示详细输出。 - `-z`:启用压缩传输。 - `--delete`:删除本地目录中没有的文件和目录。 - `--exclude='.packlist*'`:排除 .packlist 文件。 - `root@192.168.1.100:/usr/local/lib/perl5/`:远程服务器的 Perl 依赖库目录。 - `/opt/perl_lib/`:本地目录。 4. 设置环境变量 最后,您需要设置 PERL5LIB 环境变量,以便 Perl 可以找到本地 Perl 依赖库。在命令行中执行以下命令: ``` export PERL5LIB=/opt/perl_lib ``` 或者将此行添加到您的 shell 配置文件中(例如 ~/.bashrc),以便永久设置环境变量。 ``` echo "export PERL5LIB=/opt/perl_lib" >> ~/.bashrc ``` 这样,您就可以在本地计算机上使用 Perl 脚本并自动加载远程服务器上的 Perl 依赖库了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值