Windows Server 2012 两台服务器文件同步
Posted 一如年少de模样
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows Server 2012 两台服务器文件同步相关的知识,希望对你有一定的参考价值。
下载cwRsyncServer软件安装(这是Windows下的文件同步软件)
一、(1)在文件客户端服务器安装该软件,找到安装位置下的rsyncd.conf,修改配置文件(注意在Windows下输入位置时格式是:/cygdrive/c/ztb表示C盘下的ztb目录)
use chroot = false
strict modes = false
hosts allow =*
log file = rsyncd.log
pid file = rsyncd.pid
port = 873
uid = 0
gid = 0
max connections = 10
lock file = rsyncd.lock
[backup]
path = /cygdrive/c/ztb/
transfer logging = yes
ignore errors
list = no
secrets file =/cygdrive/c/Rsync/rsyncd.secrets
hosts allow = 192.168.0.2/255.255.255.0
hosts deny = *
(2)建立rsyncd.secrets
直接输入:
123456
二、在备份文件的服务器(数据库服务器)安装该软件,新建密码文件rsyncd.secrets,输入格式为:
Administrator:123456
三、在备份文件服务器手动同步测试(建议先手动测试,如果出错可以直接看出来)
在命令行界面(cmd)进入软件安装目录C:\\Program Files (x86)\\ICW\\bin;输入命令
rsync.exe -avzPu--progress --delete rsync://192.168.0.2:873/backup /cygdrive/c/Appbackup--password-file=/cygdrive/c/Rsync/rsyncd.secrets
四、自动同步测试
在备份文件服务器(数据库服务器)新建文件同步脚本rsync.cmd,内容如下:
@echo off
set rsynclog="C:\\Rsync\\rsync.log"
set nowtime=te:~0,10% %time%
echo %nowtime% >> %rsynclog%
cd /d
C:\\Program Files (x86)\\ICW\\bin
rsync.exe -avzPu --progress --delete rsync://192.168.0.2:873/backup/cygdrive/c/Appbackup --password-file=/cygdrive/c/Rsync/rsyncd.secrets
>> %rsynclog%
@echo -------------------------------------------------- >>%rsynclog%
@echo. >> %rsynclog%
五、加入系统任务计划
点击任务计划程序,进入右键点击【创建任务】
创建定时任务和数据库差不多,可以参看另一篇博文
https://www.cnblogs.com/marshu/p/9842697.html
六、遇到问题及解决办法(本步骤参考了https://www.cnblogs.com/janas/p/3321087.html)
错误1: rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receive r=3.0.2]
解决:很大可能是服务器端没有开启 rsync 服务。开启服务。
错误2:@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解决:服务器端同步目录没有权限,cwrsync默认用户是Svcwrsync。为同步目录添加用户Svcwrsync权限。
错误3:@ERROR: failed to open lock file
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解决:配置文件 rsync.conf中添加 lock file = rsyncd.lock 即可解决。
错误4: rsync: could not open password file "/cygwin/e/Setting/Rsync/rsync_db.pwd": No such file or directory (2)
解决:密码文件的目录一定要存在,而且要用POSIX风格的写法:/cygdrive/e/Setting/Rsync/rsync_db.pwd
错误5:@ERROR: auth failed on module data_backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
解决:密码错误,输入正确的密码即可。用户名和密码如果都正确,可能是远程rsync服务器的帐户密码文件的权限必须为600。
错误6: password file must not be other-accessible
解决:这是因为rsyncd.pwd rsyncd.sec的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd, Windows下应将密码文件的所有者改成程序运行的用户。
错误7:@ERROR: invalid uid nobody . rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
解决:在rsyncd.conf文件中添加下面两行即可
uid = 0
gid = 0
问题8: @ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服务器端的目录不存在或无权限。创建目录并修正权限可解决问题。
问题9:@ERROR: Unknown module ‘tee_nonexists’
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。
问题10:rsync: failed to connect to 218.107.243.2: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
原因:对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp的873或者指定的rsync端口打开。
问题11:rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
原因:/etc/rsyncd.conf配置文件内容有错误。请正确核对配置文件。
问题12:rsync: chown "" failed: Invalid argument (22)
原因:权限无法复制。去掉同步权限的参数即可。(这种情况多见于Linux向Windows的时候)
问题13:@ERROR: daemon security issue -- contact admin
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
原因:同步的目录里面有软连接文件,需要服务器端的/etc/rsyncd.conf打开use chroot = yes。掠过软连接文件。
问题14:rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receiver=3.0.2]
解决:很大可能是服务器端没有开启 rsync 服务,开启服务。
有梦可以跑回去,那自然是幸运!
以上是关于Windows Server 2012 两台服务器文件同步的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server 2012R2 实现AD双域控制器互为冗余
Windows?Server2016下安装SQL?Server2012集群