标签: 文件同步

  • centos下文件同步镜像备份工具rsync配置实战

    近日测试了下centos的文件同步镜像备份工具rsync,步步陷阱啊,到处都是不应该出现的问题,但只要密码正确、文件权限正确、防火墙允许,就一定能成功。
    一、服务器准备
    两台CentOS 7.8 Vmware虚拟机 ,用CentOS-7-x86_64-Minimal-2009.iso安装
    服务器端:10.129.10.106
    客户端:10.129.10.107
    均为新装未安装任何软件。
    不习惯用命令行编辑的也可以用winwcp连接服务器,编辑文件内容、更改文件属性。值得是文件中的备注一定单起一行,有时不另起一行就会出错。

    二、服务器端配置(服务器IP:192.168.1.163)
    1. 安装rsync
    命令:
    yum install rsync #安装rsync服务
    whereis rsync #查看系统是否已安装rsync,如已经安装会有提示信息
    yum install rsync xinetd #选择安装,安装rsync超级守护进程,并设置开机自启动
    gedit /etc/xinetd.d/rsync #编辑配置文件,设置开机启动rsync 修改disable = no(注意:有可能安装后无rsync文件,自己创建即可,文件内容如下。)
    ================================
    # default: off
    # description: The rsync server is a good addition to an ftp server, as it \
    # allows crc checksumming etc.
    service rsync
    {
    disable = no
    flags = IPv6
    socket_type = stream
    wait = no
    user = root
    server = /usr/bin/rsync
    server_args = –daemon
    log_on_failure += USERID
    }
    ==================================

    systemctl restart xinetd.service #开启服务


    2. 配置rsync文件rsync.conf
    使用命令:
    gedit /etc/rsyncd.conf

    在文中添加如下内容:(备注一定单起一行)
    uid = root
    #/模块目录属主,要添加
    gid = root
    #/ rsync_test目录属组
    use chroot = no
    #是否禁锢用户家目录
    max connections = 200
    #最大连接数
    timeout = 300
    #超时时间
    pid file = /var/run/rsyncd.pid
    #启动后将进程PID放入此文件
    lock file = /var/run/rsync.lock
    #设置rsync锁文件
    log file = /var/log/rsyncd.log
    #不设或设置错误,rsync使用syslog输出日志

    [rsync_test]
    #模块,自定义的
    path = /var/www/html/
    #指定的路径自定义的,chown -R root /var/www/html/(注意:这边是修改/ /var/www/html/所属的用户组)
    ignore errors
    #忽略错误
    read only = false
    #只读,为假,就是可读写
    list = false
    #列表,为假,不能远程列表
    hosts allow = *
    #指定可以联系的客户端主机名或IP,这里我没做限定
    hosts deny = *
    #指定拒绝访问的客户端主机名或IP,这里我没做限定
    auth users = ursync
    #允许的用户(非主机用户)
    secrets file = /etc/rsync.passwd
    #用户名,密码存放文件,格式:用户名:密码

    3. 服务端添加rsync使用的密码文件,修改密码文件权限为“600”
    vi /etc/rsync.passwd
    #服务端, 内容是:ursync:123456,注意,客户端的密码必须和服务端密码一致
    chmod 600 /etc/rsync.passwd #修改文件权限

    4. 服务添加到开机启动,并重启
    #仅仅安装rsync
    systemctl restart rsyncd.service #重新启动
    systemctl enable rsyncd.service #添加到开机启动

    #如果安装加强版rsyncd的xinetd ,做如下设置即可
    systemctl restart xinetd .service #重新启动
    systemctl enable xinetd .service #添加到开机启动

    5、防火墙设置
    要关闭防火墙或允许rsync端口873通过防火墙(我改成了874)
    **************************************************************
    firewall-cmd –zone=public –add-port=873/tcp –permanent
    firewall-cmd –zone=public –add-port=874/tcp –permanent
    返回:(succes)
    firewall-cmd –reload
    **************************************************************

    6、源目录/var/www/html/权限设置可写
    按理说可读就行,但经常得可写才能正常备份。

    三、客户端配置
    1、安装rsync
    命令:
    yum install rsync #安装rsync服务
    whereis rsync #查看系统是否已安装rsync,如已经安装会有提示信息

    2、添加远程访问服务端密码文件,修改密码文件权限为“600”

    vi /etc/rsync_test.passwd #客户端密码,内容:123456,注意,客户端的密码必须和服务端密码一致
    chmod 600 /etc/rsync_test.passwd #修改文件权限

    3、在本地建立备份文件夹,如和服务器端一致的/var/www/html/,并设置可写,如755

    4、执行命令进行同步
    命令:
    rsync -avz ursync@10.129.10.106::rsync_test /var/www/html/ –password-file=/ etc/rsync_test.passwd

    说明:
    ursync@10.129.10.106::rsync_test:使用用户(ursync)访问服务器(10.129.10.106),访问模块为rsync_test
    /var/www/html/:本地文件地址,即,可将服务器上的数据同步到本地该目录下
    password-file=/ etc/rsync_test.passwd:访问服务器(10.129.10.106)使用用户(ursync)的密码文件存放位置

    双向同步,则在服务器端和客户端,分别部署rsync的环境即可,即互为服务器端和客户端。