Windows平台下如何使用rsync实现文件同步
Windows平台下如何使用rsync实现文件同步
rsync 是一个很好的文件同步工具,我们需要一个服务端和一个客户端。可以实现把本地文件同步到服务端,也可以把服务端的文件同步到本地。
1、 下载cwRsync客户端(cwRsync)和服务器端(cwRsyncServer)。
2、服务器端(假设IP地址为:192.168.1.100)安装:采用默认选项安装。
安装后,服务默认为手动启动模式,到“管理工具/服务管理”里,启动“RsyncServer”服务,并修改“RsyncServer”为自动启动模式。
3、服务器端配置:编辑rsyncd.conf文件,写入如下信息:
以下是代码片段:
uid = 0
gid = 0 #使用匿名方式传输时必须加入这两行
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
# Module definitions
# Remember cygwin naming conventions : c:work becomes /cygwin/c/work
#
[test]
path = /cygdrive/d/temp #指定服务端用来同步的文件,这个表示“d:temp”文件夹
read only = false
transfer logging = yes
说明:其中[test]是要同步的.模块定义,可以定义多个模块,path是磁盘路径,/cygdrive/d/temp对应到 d:temp文件夹,由于cwRsync软件在windows下不能够直接挂盘符,采用 /cygdrive/这种模式。
4、在另外一台机器安装客户端(假设IP地址为:192.168.1.101),在命令行模式下,进入安装目录的bin文件夹下,执行: rsync -avr 192.168.1.100::test /cygdrive/d/temp,如此既可把服务端的文件同步到本地。 ;
linux 自带的rsync 怎么同步文件到windows?
(1)先使用telnet命令嗅探一下网络链路有没有问题,telnet使用方法如下:
telnet ip 873
如果嗅探网络不通,那就检查一下网络配置,是否请求windows防火墙阻止等。
(2)若果嗅探网络是通的,那就检查一下rsync的配置:
hosts allow = IP 是不是限制了linuxA机器的访问。
path = PATH 注意:这个路径不支持中文的,你的路径是否是中文。
***th users = USER 注意:用户是否有权限访问共享文件目录。
secrets file = /PAS/rsync_db.ps 指定的密码是否与LinuxA配置的一致。
我能想到的就这么多,希望对你有所帮助。
Linux和windows server使用rsync同步部署方案及注意事项
客户端 centos7:192.168.50.10
(Linux都会自带rsync,直接用就可以)
服务器 windows server:192.168.50.20
(windows需要自己安装,我使用的是
cwrsync_server_install 4.0.5)
在客户端上需要自己创建密码文件,权限设置成600(***用户可读可写即可)
在服务器上同样需要创建密码文件,权限设置成600(***用户可读可写)
修改配置文件
Linux上的密码文件要与windows上一致,无论是密码内容(仅指密码,用户名不坐考虑),还是采用的编码格式都要一样。
如何使用Windows下cwRsync搭建步骤文件详细同步教程
详细配置步骤如下:
一、服务器端安装配置
1、下载服务端安装文件/softs/55933.html
服务端是安装在“需要被同步的数据所在的服务器”
2、安装服务端
默认一直下一步;到下图所示
这一步很重要,可以说是cwRsync安装成功与否的关键。这一步会在当前系统下生成SvcCWRSYNC一个账户,用来启动RsyncServer服务。建议这个对此账户的密码进行重新设置,从新设置密码后,需要在服务中更改,否则RsyncServer服务不能启动
程序自动设置程序目录可修改的权限,因为需要写日志文件。
配置文件默认在程序的安装目录下,默认是 C:Program FilesICW
3、修改配置文件rsyncd.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
#
[test]
path = /cygdrive/c/work
read only = false
transfer logging = yes
修改配置内容如下,参数解释:
use chroot = false # 不使用chroot
strict modes = false #使用静态模式
pid file = rsyncd.pid # 日志记录文件
log file = rsyncd.log # 日志记录文件
[test] # 这里是认证的模块名,在client端需要指定
path = /cygdrive/e/bak # 需要做镜像的目录,如e/bak(此目录需要给SvcCWRSYNC 账户的读取权限)
transfer logging = yes # 记录传输日志
read only = yes # 只读
list = no # 不允许列文件
hosts allow = 192.168.0.0/255.255.252.0
hosts deny = * # ***止除192.168.1.0/255.255.255.0段外的连接IP
uid = 0 #解决运行后的@ERROR: invalid uid 错误
gid = 0 #解决运行后的@ERROR: invalid gid错误
lock file = rsyncd.lock #解决文件被锁定无法复制问题
#***th users = SvcCWRSYNC # 认证的用户名,这里没有这行,则表明是匿名 #secrets file = /cygdrive/c/pass/rsync.passwd # 认证文件名
创建认证文件 c/pass/rsync.passwd 内容格式:用户:密码,如SvcCWRSYNC:star888 启动RsyncServer服务并保证开机自动重启,服务器端配置完毕。
二、客户端安装配置
1、下载客户端安装文件/softs/55934.html
2、安装
一直下一步,安装完成。
3、cwRsync客户端不需要很复杂的.配置,需要设置环境变量path:c:Program FilescwRsyncbin
4、通过命令建一个批处理
@echo off #没有密码
set RSYNC_HOME=c:Program FilescwRsyncbin
cd %RSYNC_HOME%
d:
rsync -av rsync://192.168.2.242/test /cygdrive/e/test
@echo off #需要密码
set RSYNC_HOME=c:Program FilescwRsyncbin
cd %RSYNC_HOME%
d:
rsync -avzP --progress -- --password-file=/cygdrive/c/pass/rsync.passwd SvcCWRSYNC@192.168.2.242::test /cygdrive/e/test
意思是将192.168.2.242的服务端下的test模块下的e:bak目录同步到客户端的e:test下
命令参数解释:
-avzP
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v verbose,详细模式输出
-u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步
--progress
显示备份过程
--
删除那些DST中SRC没有的文件
--password-file
指定密码文件,只需包含密码而不用包含用户名
SvcCWRSYNC@192.168.2.242::test
SvcCWRSYNC 登陆服务器端的用户名
192.168.2.242 服务器端的ip地址
test 服务器端指定的认证模块名,多个同步作业靠此模块名区分
/cygdrive/e/test
存放服务器端同步文件的本地目录
4、配置系统作业,运行脚本选择rsync.bat,客户端配置完毕。
cwRsync写一可以定期删除前一个星期的备份数据库的脚本
首先利用数据库自带的命令行工具将数据库备份下来,例如对MySQL将databasename数据库备份到D:data.sql(具体查阅数据库说明书)
mysqldump databasename "D:data.sql"
然后将该文件以日期参量重名名。如果指定保留N天的数据可能有一定困难,不过既然要求7天,不妨以星期作为区分。
假设文件名具有格式“data_日期.sql”,则更名语句为(建议先创建后改名,对于很大的数据库可能要备份很长时间并超过0点)
ren "data.sql" "data_%date%.sql"
若系统时间格式为“2009-04-05 星期日”,则产生文件“data_2009-04-05 星期日.txt”。
获取星期几的语句:%date:~11,3%
其中11表示从第11个字符开始(从0开始计算),总共截取3个字符。由此可获得字符串“星期日”。重名名前,删除以data_开头,包含“星期日”的文件
del "data_*%date:~11,3%*.sql"
这样就把上星期的那个文件删除了。
注意:如果系统日期格式与上面的不一致,数字需重新计算,特别是若日期中含有“/”、“:”等字符会导致创建文件失败,此时年月日星期均需手动提取,例如对“04/05/2009 Sun”,应使用“%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%%DATE:~11,3%”得到“20090405Sun”。查看日期格式可使用“echo %date%”。
另外,如果某项(时间格式、文件名、路径等)包含空格则必须使用引号。
脚本源代码
mysqldump databasename "D:data.sql"
del "D:data_*%date:~11,3%*.sql"
ren "D:data.sql" "data_%date%.sql"
编为一个bat文件,添加计划任务,每天定时执行即可。
windows rsync传输到linux备份
一些软件安装在windows上想要对上面的文件进行异地备份
后来找到cwRsync ——同步Windows文件到Linux,和linux的rsync一样的功效
链接:
提取码:07l1
windows默认安装即可
windows上配置rsyncd.conf 文件
cat /cygdrive/d/Program Files (x86)/ICW/rsync_db.ps
此密码文件里的格式是"用户名:密码",这个密码可以随意指定。但***设置服务器的用户名和密码。如果觉得不安全,就另外创建一个用户名和密码,专门用于rsync同步之用。
但是千万要记得这个创建的用户名对E:SettingRsyncrsync_db.ps这个密码文件要有修改的操作权限。
安装完成后windows-服务,就可以找到,修改好配置文件,重启服务即可
测试是否可以连通
进入Linux服务器,新建一个backup_passwd的文件,内容为在上面windows中RsyncServer中设定的密码内容:
linux服务器上要安装rsync环境。这里将windows备份数据同步到linux的/Win_Back目录下
--delete表示如果有删除也更新,可以实现目标文件夹增加和删除和修改都更新的目的
放到linux的crontab中,每天执行一次,***次全量备份会比较慢,后期都是增量备份会很快
windows重启后rsync服务并没有启动,服务——RsyncServer,手动启动后报错
“本地计算机上的rsyncserver服务启动后停止,某些服务在未由其他服务或程序”
后查看原来是rsyncserver异常结束时,pid文件未及时删除,导致再次启动服务时因检测到pid文件而认为服务已经启动。而windows的服务管理器并不以pid为检测标准,所以弹出启动又停止的提示
解决:
手动删除esyncserver产生的pid文件,再次启动即可
C:Program Files (x86)ICWrsyncd.pid
关于cwrsync和cwrsyncserver设置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。