美文网首页我爱编程
服务器文件同步

服务器文件同步

作者: 青青玉立 | 来源:发表于2018-05-25 16:26 被阅读0次

    服务器文件双向、多向同步rsync+sersync

    安装前的准备(各同步服务器都配置)

        # 因为这会降低服务器异常报警的级别,所以记得添加报警机制

        # SELINUX=disabled(完全不验证)

        vim /etc/sysconfig/selinux

        SELINUX=permissive

        ESC

        :wq

        getenforce

        setenforce 0

    当然上述方案由于存在隐患被诟病,可以参考如下方案(各同步服务器都执行)

       1.  [参考链接](https://blog.csdn.net/u011630575/article/details/52068959)

           # 安装SELinux管理工具semanage

            yum -y install policycoreutils-python

        2. [参考链接](https://www.howtoing.com/sync-files-using-rsync-with-non-standard-ssh-port)

            # 查看rsync要在SELinux中占用的端口

            semanage port -l|grep rsync

                # 执行后显示

                # rsync_port_t tcp 873

                # rsync_port_t udp 873

            # 添加rsync占用端口到SELinux

            semanage port -a -t rsync_port_t -p tcp 873

            semanage port -a -t rsync_port_t -p udp 873

    安装rsync(各同步服务器都装)

        yum install rsync -y

    配置rsyncd.conf(各服务器都配置)

        # uid、gid决定被同步过来的文件所属用户所属组

        # secrets file决定rsync密码配置文件的位置

        # []中是一个自己指定的同步计划的名字(字母数字下划线)

        # path是被同步文件的存放位置

        # hosts allow这里注意,每一台服务器都只写其它服务器IP

        # hosts allow、hosts deny格式

            # *(所有IP)

            # 192.168.0.2/24(IP段)

            # 192.168.0.2 192.168.0.3(指定多个IP)

        # secrets file = /etc/rsync.pswd 这里不启用密码验证,通过IP进行物理隔离

        vim /etc/rsyncd.conf

        uid = www

        gid = www

        use chroot = yes

        max connections = 0

        log file = /var/log/rsyncd.log

        pid file = /var/run/rsyncd.pid

        lock file = /var/run/rsyncd.lock

        motd file = /tmp/rsyncd.motd

        [tongbu001]

            path = /www/test

            comment = xoyo video files

            ignore errors = yes

            read only = no

            hosts allow = 192.168.0.2 192.168.0.3 192.168.0.4

            hosts deny = *

    创建同步目录(各服务器都创建)

        useradd www

        mkdir /www

        mkdir /www/test

        chown -R www:www /www

     查看占用的端口号

        netstat –apn|grep rsync

     开启端口

        yum install firewalld -y

        systemctl enable firewalld

        systemctl start firewalld

        firewall-cmd --zone=public --permanent --add-port=873/tcp

        firewall-cmd --reload

    启动rsync(各服务器都启动)

        rsync --daemon

    设置rsync开机启动

        # 进入单元文件目录

        cd /etc/systemd/system

        # 创建rsync单元文件,格式为: [单元文件名].[单元文件类型]

        vim rsync.service

        [Unit]

        Description=Start rsync on boot.

        After=default.target network.target

        [Service]

        User=root

        Group=root

        Type=forking

        PIDFile=/var/run/rsyncd.pid

        ExecStart=/usr/bin/rsync --daemon

        ExecReload=/bin/kill -s HUP $MAINPID

        ExecStop=/bin/kill -s QUIT $MAINPID

        PrivateTmp=false

        Restart=always

        [Install]

        WantedBy=multi-user.target

        ESC

        :wq

        # 修改文件权限为只有root用户可以编辑该文件

        chown -R root:root /etc/systemd/system/rsync.service

        chmod -R 644 /etc/systemd/system/rsync.service

        # 更新systemd

        systemctl daemon-reload

        systemctl enable rsync

        systemctl start rsync

    安装sersync(各服务器都装)

        # 源码

        https://code.google.com/archive/p/sersync/

        # 百度云

        https://pan.baidu.com/s/1qrwTM40aJ8ckmT84PpiNjg

        # 64位最新

        https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz

        # 32位最新

        https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5_32bit_binary_stable_final.tar.gz

        # 下载安装

        wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz

        tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz

        mv GNU-Linux-x86/ /usr/local/sersync

    配置sersync(各服务器都执行) 

     cd /usr/local/sersync 

     vim confxml.xml 

    启动sersync(各服务器都执行)

    /usr/local/sersync/sersync2  -d  -r  -o /usr/local/sersync/confxml.xml

    测试

    # 在任意一台服务器执行

        su www

        cd /www/test

        echo a > test.txt

        ls

        # 然后在其他每台服务器执行

        cd /www/test

        ls

        # 如果结果中包含

        test.txt

        # 即表示安装成功

     配置开机启动rsync、sersync

    相关文章

      网友评论

        本文标题:服务器文件同步

        本文链接:https://www.haomeiwen.com/subject/zurujftx.html