zoukankan      html  css  js  c++  java
  • 使用rsync在windows(服务端)与linux(客户端)之间同步

    说明:

    1、cwRsyncServer服务端

    系统:Windows7

    IP地址:192.168.0.110

    2、Rsync客户端

    系统:CentOS 6.7

    IP地址:192.168.0.141

    实现目的:

    Rsync客户端每天凌晨5:00自动同步cwRsyncServer服务端G: syncfile目录中的数据到自己的/tmp/rsync目录中

    一、cwRsyncServer服务端配置

    下载地址:

    https://www.backupassist.com/rsync/

    安装cwRsyncServer_4.2.0_Installer

    Next

    I Agree(同意)

    填写安装路径

    Next

    Service account:test (新建的一个系统账户)

    Type password:123456(密码)

    Confirm password:123456(密码)

    备注:系统会自动创建一个账户:test来运行cwRsyncServer服务端程序

    以上信息默认即可

    Install (安装)

    Close(关闭),安装完成

    开始-设置-控制面板-管理工具-服务

    找到RsyncSever选项,双击打开

    启动类型:自动

    点“启动”

    应用-确定

    window7中创建一个存放文件的目录(rsync同步用的),我这里创建的是G:rsyncfile

    右击rsyncfile目录,打开属性——安全,把安装rsyncd时,设置的帐号添加进来,并设置权限为完全控制(我安装rsyncd的时候,设置了帐号是test,密码123456):

    修改配置文件:

    打开G: syncserverICW syncd.conf

    修改内容大概如下:

    use chroot = false

    strict modes = false

    hosts allow = *

    log file = rsyncd.log

    # Module definitions

    # Remember cygwin naming conventions : c:work becomes /cygwin/c/work

    #

    [rsyncfile]

    path = /cygdrive/g/rsyncfile

    read only = false

    transfer logging = yes

    auth users = test

    secrets file = etc/rsyncd.secrets

    UID = 0

    GID = 0

    注意path路径,path = /cygdrive/是固定的,不要改,后面连接的g/rsyncfile,则是我们刚才所建的目录路径,刚才我是建在G盘的,目录为rsyncfile

    其它参数详解:

    read only = true #客户端只读

    list = no#不允许列出文件

    hosts allow=192.168.0.141 #允许连接IP,多个IP中间用英文状态下逗号隔,不限制IP填写*即可

    auth users =test #允许连接的用户名

    secrets file = etc/rsyncd.secrets #存放用户名密码的认证文件路径

    创建rsync同步帐号密码文件:

    进入:G: syncserverICWetc,创建文件:rsyncd.secrets,文件里输入test:123456test是同步帐号,123456是同步密码

    cwRsyncServer服务端安装设置完成

    二、Rsync客户端配置

    1、安装Rsync客户端软件

    yum install rsync -y

    chkconfig rsync on  #设置开机启动rsync

    /etc/init.d/xinetd start #启动(CentOS中,Rsync是以xinetd来管理的)

    2、测试Rsync客户端是否与cwRsyncServer服务端通信成功(cwRsyncServer服务端防火墙需要开启tcp 873端口)

    yum install telnet #安装telnet测试工具

    telnet 192.168.0.110 873 #输入命令后回车,如下图所示,表示通信成功

    3、测试数据同步

    [root@host1 rsync]# rsync -vzrtopg --port=873 --progress --delete test@192.168.0.110::rsyncfile  /tmp/rsync

    这里会提示输入密码:123456

    注意:此处的密码为cwRsyncServer服务端G: syncserverICWetc syncd.secrets文件配置的密码

    [root@host1 rsync]# pwd
    /tmp/rsync
    [root@host1 rsync]# ls
    123.txt

    4、添加计划任务,每天自动执行数据同步脚本

    vi /etc/passwd.txt #配置文件,添加以下内容

    123456 #密码

    :wq! #保存退出

    chmod 600 /etc/passwd.txt #设置文件权限,只设置文件所有者具有读取、写入权限即可

    cd /shell

    vim rsyncbak.sh #编辑,添加以下内容

    #!/bin/sh

    rsync -vzrtopg --port=873 --progress --delete test@192.168.0.110::rsyncfile /tmp/rsync --password-file=/etc/passwd.txt

    :wq! #保存,退出

    chmod +x /shell/rsyncbak.sh #添加脚本直接权限

    crontab -e

    0 5 * * * sh /shell/rsyncbak.sh > /var/log/rsyncbak.txt 2>&1

    设置完成之后,每天凌晨5点,Rsync客户端会自动同步cwRsyncServer服务端G: syncfile目录数据到自己的/tmp/rsync目录中

    至此,CentOS客户端与Windows服务端实现数据同步设设置完成

    同步报错:

    rsync: didn't get server startup line
    rsync error: error starting client-server protocol (code 5) at main.c(1649) [Receiver=3.1.2]  

     这个报错排查了一个下午,各种原因都排查一遍,服务端客户端重装也没找到,最后修改rsync服务端的配置文件rsyncd.conf逐步排查,去掉[test]模块的这两行,其余步骤不变,认证成功!

    auth users = test
    secrets file = etc/rsyncd.secrets  

     相关文章:使用rsync在linux(服务端)与windows(客户端)之间同步

     参考文档:http://www.dedecms.com/knowledge/servers/linux-bsd/2012/0819/8524.html

  • 相关阅读:
    下载linux历史版本
    CentOS7 常用命令集合
    oracle初级系列教程
    redis内存数据的持久化方式
    使用Spring 或Spring Boot实现读写分离( MySQL实现主从复制)
    三个线程ABC,交替打印ABC
    wait,notify,notifyAll详细介绍
    索引优化分析
    Git常用命令使用大全
    长连接 、短连接、心跳机制与断线重连(转载)
  • 原文地址:https://www.cnblogs.com/01-single/p/8652597.html
Copyright © 2011-2022 走看看