zoukankan      html  css  js  c++  java
  • Windows 之间用rsync同步数据(cwRsyncServer配置)

    rsync是一款优秀的数据同步软件,在跨服务器,跨机房,跨国备份服务器的首选工具,下面就来介绍下如何配置安装cwRsyncServer很大多数软件一样是B/C架构,cwRsyncServer是rsync的windows版本

    一,下载
    官方下载地址:官方网站:http://rsync.samba.org/download.html
    下载地址:
    http://sourceforge.net/projects/sereds/files/cwRsync/4.1.0/

    服务器版为: <ignore_js_op> cwRsyncServer_4.1.0_Installer.rar (3.65 MB, 下载次数: 91) 
    客户端版为: <ignore_js_op> cwRsync_4.1.0_Installer.rar (3.4 MB, 下载次数: 153) 

    二,安装


    服务器IP:192.168.1.1
    客户端IP:192.168.1.2

    1,服务器安装

    第一步:建立cwRsyncServer运行账户,这一步是必须的,否则你安装完连启动都启动不来哦
    用户名:test
    密码:test
    并且加入管理员组!
    注意:这个帐号只是安装和运行用的账户,别无它用

    第二步:安装
    安装如图:

    <ignore_js_op>1.png


    <ignore_js_op>2.png


    <ignore_js_op>4.png


    输入刚刚建立的帐号

    <ignore_js_op>5.png



    按照完毕后点击closed即可

    第三步:配置
    我们按照的路径是:E:Program FilesICW
    那我们就进入到这个目录
    打开rsyncd.conf编辑内容如下:

    use chroot = false
    uid = 0
    gid = 0
    strict modes = false
    log file = rsyncd.log
    port = 10556
    [www]
    path = /cygdrive/c/www
    read only = false
    transfer logging = yes
    auth users = testuser
    secrets file = etc/testuser.pas
    hosts allow = 192.168.1.2
    hosts deny = 0.0.0.0/0

    [mysql]
    path = /cygdrive/d/MySQL/MySQL Server 5.0/data/bbs
    auth users = testuser
    secrets file = etc/testuser.pas
    hosts allow = 192.168.1.2
    hosts deny = 0.0.0.0/0


    然后进入E:Program FilesICWetc目录建立testuser.pas文本文件,注意文件全名为testuser.pas

    输入:
    testuser:123
    即:用户名为:testuser
           密码为:123
    这个用户才是客户端连接服务器是要认证的用户名和密码

    第四步:启动服务
    运行---cmd---services.msc
    如图启动服务:

    <ignore_js_op>11.png


    本地测试一下:telnet 127.0.0.1 10556

    防火墙记得开启这个端口

    2,客户端安装
    解压:cwRsync_4.1.0_Installer.zip按照向导安装
    按照完成后:
    cd C:Program FilescwRsyncin>

    启动客户端连接服务器
    rsync.exe -vzrtopg --progress --delete wodetop@192.168.1.1::www /cygdrive/e/databackup/www --port=10556
    输入密码

    3,设置计划任务,定时同步数据:

    注意,计划任务这块要提示输入密码,下面是不用输入密码的脚本
    1. @echo off
    2. "c:Program FilescwRsyncin sync.exe" -vzrtopg --progress --delete cnuser@192.168.1.1::www /cygdrive/e/databackup/www --port=10556 --password-file=/cygdrive/e/databackup/rsyncpwd.txt < E:databackuppasswd.txt
    复制代码

    在E:databackup目录下建立一个空文件名:rsyncpwd.txt 再建立个E:databackuppasswd.txt 输入密码

    否这回出现下面错误:password file must not be other-accessible

    password file must be owned by root when running as root


    楼下会给出常见的一些问题
    安装完 cwRsync客户端后,开始写bat 执行文件,遇到的第一件事情就是就同步到本地时 目录不认识,报错如下:

    The source and destination cannot both be remote.
    rsync error: syntax or usage error (code 1) at main.c(1138) [Receiver=3.0.7]

    主要原因是cwRsync 不能直接认识本地盘,必须加上 /cygdrive/g/test

    意思为g: est目录

    客户端密码文件报错如下:

    rsync password file must be owned by root when running as root

    万能的GOOGLE告诉我,可以用一个变通的方式解决就是

    @echo off
    "C:Program Files (x86)cwRsyncin sync" -rlptDzv --progress --delete "backup@192.88.88.128::test" /cygdrive/g/test --password-file=/cygdrive/g/rsync/passws.ps<g: syncpasswd.txt 

    在g: sync 下建立了一个文件,写入密码,然后同步密码最后在这个文件中输入即可。如上所例。
    rsync问题小结

    在用rsync同步数据的时候,经常会出现一些问题,我将遇到的总结如下:
    1、权限问题
    类似如下的提示:rsync: opendir "/kexue" (in dtsChannel) failed: Permission denied (13)注意查看同步的目录权限是否为755
    2、time out
    rsync: failed to connect to 203.100.192.66: Connection timed out (110)
    rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
    检查服务器的端口netstat –tunlp,远程telnet测试。
    3、服务未启动
    rsync: failed to connect to 10.10.10.170: Connection refused (111)
    rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
    启动服务:rsync --daemon --config=/etc/rsyncd.conf
    4、磁盘空间满
    rsync: recv_generator: mkdir "/teacherclubBackup/rsync……" failed: No space left on device (28)
    *** Skipping any contents from this failed directory ***
    5、Ctrl+C或者大量文件
    rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [receiver=3.0.5]
    rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [generator=3.0.5]
    6、xnetid启动
    rsync: read error: Connection reset by peer (104)
    rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.5]
    查看rsync日志
    rsync: unable to open configuration file "/etc/rsyncd.conf": No such file or directory
    xnetid查找的配置文件位置默认是/etc下,根据具体情况创建软链接。例如:
    ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
    加入运维联盟QQ群
    常见错误:

    错误一
    rsync: failed to connect to 96.44.169.178 (*inet_ntop failed*): Connection timed
    out (116)
          1 [main] rsync 3468 exception::handle: Exception: STATUS_ACCESS_VIOLATION
        740 [main] rsync 3468 open_stackdumpfile: Dumping stack trace to rsync.exe.s
    tackdump
    1,防火墙问题
    2,端口不对

    错误二
    @ERROR: auth failed on module www
    rsync error: error starting client-server protocol (code 5) at main.c(1516) [Rec
    eiver=3.0.8]
    密码不对

    错误三
    @ERROR: invalid uid nobody
    rsync error: error starting client-server protocol (code 5) at main.c(1516) [Rec
    eiver=3.0.8]
    UID不对,默认是nobody
    解决方法:
    uid = 0
    gid = 0

    错误四
    receiving incremental file list
    rsync: read error: Connection reset by peer (104)
    rsync error: error in rsync protocol data stream (code 12) at io.c(769) [receive
    r=3.0.8]
    rsync: connection unexpectedly closed (60 bytes received so far) [generator]
    rsync error: error in rsync protocol data stream (code 12) at io.c(610) [generat
    or=3.0.8]
    可能原因:
    1,磁盘挂载是用异步的(async)
    然后,检查了/etc/fstab ,去掉async参数。

    2,我在服务器上查看日志,看到有这么一行:
    rsync: unable to open configuration file "/etc/rsyncd.conf": No such file or directory

    于是我:
    ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf

    3,同步文件数较多的目录出错
    有个子目录中文件较多,也就8000来个吧,总是同步一半便退出。在批处理中加上-v参数,看到错误信息如下:
    rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Connection reset by peer (104)
    rsync: read error: Connection reset by peer (104)
    rsync error: error in rsync protocol data stream (code 12) at io.c(768) [sender=
    3.0.6]

    这个问题有点头疼,在www.itefix.no网站论坛上也没能查出个所以然。

    不过最终还是在samba.org上找到解决方案:

    在客户端命令行中加上--no-iconv参数就可以了。

    原以为是文件太多,缓冲区不够引起,但看这个解决方案,似乎是转换编码方面的bug了。

    在rsync的文档中描述如下:
    http://rsync.samba.org/ftp/rsync/rsync.html
    --iconv=CONVERT_SPEC
    Rsync can convert filenames between character sets using this option. Using a CONVERT_SPEC of "." tells rsync to look up the default character-set via the locale setting. Alternately, you can fully specify what conversion to do by giving a local and a remote charset separated by a comma in the order --iconv=LOCAL,REMOTE, e.g. --iconv=utf8,iso88591. This order ensures that the option will stay the same whether you're pushing or pulling files. Finally, you can specify either --no-iconv or a CONVERT_SPEC of "-" to turn off any conversion. The default setting of this option is site-specific, and can also be affected via the RSYNC_ICONV environment variable.
  • 相关阅读:
    .NET XmlNavigator with Namespace
    编程要素
    【FOJ】1962 新击鼓传花游戏
    【POJ】1389 Area of Simple Polygons
    【POJ】2482 Stars in Your Window
    【HDU】3265 Posters
    【HDU】1199 Color the Ball
    【HDU】3642 Get The Treasury
    【HDU】4027 Can you answer these queries?
    【HDU】1542 Atlantis
  • 原文地址:https://www.cnblogs.com/hllnj2008/p/4103761.html
Copyright © 2011-2022 走看看