Rsync的服务端搭建

    科技2024-03-25  96

                                 Rsync的服务端搭建

    rsync相比较scp而言,功能更为强大,高效,通过sersync或者inotify实时监测源目录和文件,从而支持多文件,多目录的实时同步,或者,通过定时任务crontab 定时的增量备份重要目录和文件。

    那么,这个服务端是什么意思呢?可以简单的理解为类似ftp,samba这样的服务,把客户端要同步的文件或者目录同步到服务器上,服务端指定存放同步的文件或者目录的位置,象ftp一样,存储同步备份的文件。

    环境配置:

    192.168.0.16   客户端,安装rsync,httpd服务并开启该服务

    192.168.0.17   服务端,安装rsync,并配置rsync为服务

    (rysnc目前由https://rsync.samba.org 提供技术支持,也就是Samba管理该项目,有源码包可供编译安装,建议无特殊需求的yum安装吧,毕竟仅仅是个工具。)

    搭建步骤:

    192.168.0.17 的配置:

    1.安装rsync,如果是最小化安装,通常没有rsync,需要yum安装, yum install rsync -y

    2. 编辑 /etc/sysconfig/rsyncd ,内容如下:

    OPTIONS="/etc/rsyncd.conf"

    3.编辑/etc/rsyncd.conf,内容如下:

    uid = root gid = root port = 873 use chroot = yes max connections = 4 hosts allow = * pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd/rsyncd.log lock file =/var/run/rsync.lock exclude = lost+found/ transfer logging = yes timeout = 900 ignore nonreadable = yes dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 [httpd_back] path = /mnt/httpd_back comment = ftp export area read only = no auth users = rsync secrets file = /etc/rsyncd.passwd [etc_back] path = /mnt/etc_back comment = etc export area read only = no auth users = rsync secrets file = /etc/rsyncd.passwd

    4. 日志文件的生成

    mkdir -p /var/log/rsyncd/  && touch /var/log/rsyncd/rsyncd.log && chmod 755 /var/log/rsyncd/rsyncd.log

    5.根据  /etc/rsyncd.conf这个配置文件,生成账号和密码保存文件

    vim /etc/rsyncd.passwd    #文件内容如下:

    rsync:你要设定的密码,客户端使用的。

    6. 设定账号密码文件权限为600

    chmod 600 /etc/rsyncd.passwd

    7.根据 /etc/rsyncd.conf 这个配置文件,生成存放同步及备份文件或目录的目录

    mkdir -p /mnt/httpd_back/

    mkdir -p /mnt/etc_back/

    8.启动服务并加入开机启动,查看服务状态

    systemctl enable rsyncd && systemctl start rsyncd && systemctl status rsyncd

    绿色的running表示服务以及配置文件都正常

    9.netstat 查看服务启动的状态,最后确认。

    netstat -antup | grep rsyncd #输出如下:

    [root@centos7 httpd_back]# netstat -antup | grep rsync tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      11640/rsync          tcp6       0      0 :::873                  :::*                    LISTEN      11640/rsync


    192.168.0.16的配置:

    yum install rsync httpd -y && systemctl enable httpd && systemctl start httpd &&echo "192.168.0.16" >/var/www/html/index.html

    vim /etc/rsync.passwd

    密码,和服务器端设定的密码一致,只写密码什么都不写

    chmod 600 /etc/rsync.passwd

    rsync -avz /var/log/httpd/  rsync@192.168.0.17::httpd_back --password-file=/etc/rsync.passwd


    这时候,在192.168.0.17的 /mnt/httpd_back目录内应该可以看到192.168.0.16的httpd服务的日志了

    rsync -avz /etc/  rsync@192.168.0.17::httpd_back --password-file=/etc/rsync.passwd

    这时候,在192.168.0.17的 /mnt/httpd_back目录内应该可以看到192.168.0.16的etc目录了

    rsync -avz /etc  rsync@192.168.0.17::etc_back --password-file=/etc/rsync.passwd

    #注意,这条命令 rsync -avz /etc 和 rsync -avz /etc/  效果是不一样的,第一个是带目录,第二个是不带目录。切记!!!

    这时候,在192.168.0.17的 /mnt/etc_back目录内应该可以看到192.168.0.16的etc目录了。

    总结来了:

    服务端的配置文件内可以象Samba一样写入多个【】这样的模块,从而在客户端推送文件或者文件夹时灵活的保存在不同目录,指定模块名称即可。

    hosts allow  这个选项可以指定网段或者IP从而保护服务器(谁都可以来,是不安全的,不是推荐的)

    rsync -avz后面接的目录带  / 和不带  /  是不一样的,一定要搞清楚。(最好是动手实践,记清楚)

    rysncd.conf 这个文件是在centos,redhat7后才有的模板文件,如果是6,可能需要自己创建。

    保存账号和密码的文件全部是需要600或者700权限,如果权限不对,会报错的。(rsync强制保护措施)

    日志文件的权限755勉强可以接受,因为只是日志而已,该日志比较详细,记录了每个事件,如果有错误,建议第一时间查看日志。

    在本例中,在 /etc/rsyncd.conf文件内定义了两个模块,当然,也可以定义更多的模块,但,定义的path需要创建,客户端仅仅调用模块名称 ,也就是 [] 内的名称。

     

     

     

     

     

     

    Processed: 0.012, SQL: 8