在windows中使用CwRsync进行数据库备份

        前几天使用ssh在两台windows服务器之间进行数据库备份,但是首先ssh一般是全量备份(虽然局域网内速度还是很快,50m/s)但是还是很不方便,还要在客户端写个定时删除的脚本。再者就是我在windows使用ssh时对免密输入死活搞不了,公钥一直无法识别。最后用下策vbs写了个脚本实现了模拟输入密码。但是问题又双叒叕出来了。。。因为服务器几分钟没用就自动锁定了,锁定状态下vbs是无法模拟输入的。。。我真的。。。

所以就有了这篇文章,使用CwRsync对其进行数据库备份

目录

1.下载CwRsync

 2.安装CwRsync

2.1安装CwRsync服务器端

2.1.1配置服务器端的配置文件

2.1.2创建用户名密码文件

2.1.3配置用户名密码文件相关权限

2.1.4启动CwRsync服务

2.2安装CwRsync客户端

2.2.1安装

2.2.2创建密码文件

2.2.3配置密码文件相关权限

3.测试

4.实现自动化备份

5.结语


1.下载CwRsync

 2.安装CwRsync

2.1安装CwRsync服务器端

还是提一嘴,服务器端就是提供需要备份文件的那端

基本上无脑next下一步就行,但是得注意在这个界面时

此时一定要输入你这台电脑存在的用户名和密码,否则就安装失败,不会注册RsyncServer服务,得重来 !!!

2.1.1配置服务器端的配置文件

编辑你安装目录下的 rsyncd.conf 文件如下

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                   
 
# Module definitions 
# Remember cygwin naming conventions : c:work becomes /cygwin/c/work 
[SVN] 
path = /cygdrive/d/project-energy-new/mongodb_backup       
read only = false                       
transfer logging = yes                 
ignore errors                         
list = no                              
hosts allow = 192.168.1.5 
hosts deny = *                          
lock file = rsyncd.lock
strict modes = no
auth users = NYJAdmin               
secrets file = /cygdrive/d/newRsyncServer/ICW/rsync.password          

附注解版:

use chroot = false                     #不使用chroot 
strict modes = false                   #静态模式 
hosts allow = *                        #所有IP均可 
log file = rsyncd.log                  #log文件名,可以指定路径 
pid file = rsyncd.pid                  #pid文件名,可以指定路径 
port = 8173                            #默认端口873 
uid = 0                                #不指定uid,不加这一行将无法使用任何账户 
gid = 0                                #不指定gid 
max connections = 10                   #最大连接数10                   
 
# Module definitions 
# Remember cygwin naming conventions : c:work becomes /cygwin/c/work 
[SVN]                                  #模块名称,后面运行时需指定
path = /cygdrive/d/project-energy-new/mongodb_backup       #你需要备份文件的路径
read only = false                      #只读 
transfer logging = yes                 #记录传输日志 
ignore errors                          #忽略无关的IO错误 
list = no                              #不列文件表         
hosts allow = 192.168.1.5              #允许访问的ip地址,多个不知道是,还是/请自行尝试
hosts deny = *                         #不允许hosts allow以外的任何IP访问                         
lock file = rsyncd.lock                #避免@ERROR: failed to open lock file出现
strict modes = no                      #关闭严格校验模式
auth users = NYJAdmin                  #需要校验的用户名,就是你之前安装时输入的用户名   
secrets file = /cygdrive/d/newRsyncServer/ICW/rsync.password     #密码校验文件的存放位置,也是你之前安装时输入的密码

ps:

  • 如果你从其他地方拷贝的配置文件,切记把每行末尾的 #注释信息给删了。。。不删会导致校验密码失败,我真的会谢,这玩意儿卡了我一天。。。我是新手,我太菜了。。。
  • 所有关于写路径的,例如 /cygdrive/d/project-energy-new/mongodb_backup 表示 D:\\project-energy-new/mongodb_backup,/cygdrive前缀是必加的,不要耍聪明自个儿删了

2.1.2创建用户名密码文件

新建一个文本文档(txt),在里面输入你在创建时的用户名密码 键值对,像这样

NYJAdmin:123456

然后修改这个文本文档的名称如下(包含文件类型后缀)

 rsync.password

最后长这样:

然后将这个文件,放到你在 rsyncd.conf secrets file 这行指定的位置即可

2.1.3配置用户名密码文件相关权限

避免后续密码校验出现各种各样的问题,需配置用户名密码文件的相关权限。在你安装CwRsync地方的bin目录下,文件目录处键入cmd。或者你一路cd也行

然后分别键入以下命令

chmod -c 600 /cygdrive/d/cwRsync/rsync.password
chown NYJAdmin /cygdrive/d/cwRsync/rsync.password

ps:

  • 你用户名密码文件放哪就将 /cygdrive/d/cwRsync/rsync.password 这段代码改成哪,写法跟配置文件的一样
  • 第二段代码是设置文件拥有者权限,你用的哪个系统用户来校验(也就是你 rsync.password 文件里写的用户名)就填哪个

2.1.4启动CwRsync服务

打开任务管理器,点击服务,找到 RsyncServer ,右键,启动即可。后续只要是修改了配置文件都需要重新启动!

2.2安装CwRsync客户端

2.2.1安装

安装客户端就很简单了,一路next下一步就完事了。。。

2.2.2创建密码文件

在你安装CwRsync的目录下新建一个文本文档(txt),把你之前配置服务器端时写的  rsync.password 文件里的密码写进去即可。只用填密码!只用填密码!只用填密码!

搞定后和服务器端的一样也把文件名修改成 rsync.password 即可

2.2.3配置密码文件相关权限

同服务器端一样,在安装目录的bin目录下,在地址栏输入cmd,也输入以下代码

chmod -c 600 /cygdrive/d/cwRsync/rsync.password
chown administrator /cygdrive/d/cwRsync/rsync.password

ps:

不过此时第二段代码设置的权限拥有者就需要修改成你现在系统登录的用户名了

tips:

一般windows没有自带 chown.exe ,直接去服务器端安装的bin目录下拷贝一个chown.exe过来即可

3.测试

至此,windows下的CwRsync的安装就大功告成了。接下来进入紧张刺激的测试环节。应该会有各种各样的bug。。。。

在客户端,注意是客户端(也就是备份文件的接收方)的安装目录的bin目录下,地址栏键入cmd,输入如下命令

rsync.exe -avzP --progress --delete --password-file=/cygdrive/d/cwRsync/rsync.password NYJAdmin@192.168.1.1::SVN /cygdrive/d/new_energy_project_database_bak

命令简介:将服务器端配置文件中配置的需要备份文件,增量备份到客户端的D:\new_energy_project_database_bak目录下

ps:

  • password-file后写的是你当前客户端配置的密码文件地址,文件路径写法同服务器端的配置文件
  • NYJAdmin@192.168.4.1::SVN 中:
    • NYJAdmin表示校验的用户名为NYJAdmin,也就是你 服务器 端rsync.password文件里配置的用户名
    • 192.168.1.1就是服务器端的地址(可以先ping一下看是否能ping通)
    • SVN就是服务器端配置文件里配置的模块名称
  • /cygdrive/d/new_energy_project_database_bak 最后的这段表示备份的文件在 客户端 的存放地址,我这个就相当于保存在D盘下的new_energy_project_database_bak文件中

其中模块名称就是这儿配置的,好多大佬也不说一下,报个 @ERROR: auth failed on module xxx 错找半天 。。

其他参数详解 :

-avzP  

-a 参数,相当于-rlptgoD:

-r 是递归

-l 是链接文件,意思是拷贝链接文件

-p 表示保持文件原有权限

-t 保持文件原有时间

-g 保持文件原有用户组

-o 保持文件原有属主

-D 相当于块设备文件

-v 详细模式输出

-z 传输时压缩

-P 显示传输进度

--progress 显示备份同步过程

--delete 删除Client中有Server没有的文件,即如果Server删除了这一文件,那么client也相应把文件删除,保持真正的一致

其他常见错误详见:rsync常见问题及解决办法 - CodeAntenna 

4.实现自动化备份

参考这篇文章的Windows下添加计划任务即可

Windows下通过cwRsync备份到服务器&服务器之间使用rsync备份传输_ytraister的博客-CSDN博客

5.结语

兜兜转转,搞了差不多2天终于把异地备份数据库给搞完了,站在各位大佬的肩上不断优化和试错才产生了这篇文章。

参考文章:

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cwrsync是为Windows系统开发的rsync实现。它可以在Windows平台上使用命令行工具进行文件同步和备份操作。Cwrsync是基于Cygwin项目的,它为Windows提供了类Unix环境,使得rsync能够在Windows系统上运行。 要使用Cwrsync,您需要按照以下步骤进行操作: 1. 下载Cwrsync软件包:您可以在Cwrsync官方网站或其他可信的软件下载站点上找到Cwrsync的安装程序。请确保下载与您的Windows系统版本相匹配的软件包。 2. 安装Cwrsync:运行下载的安装程序,并按照提示完成安装过程。安装程序会将Cygwin环境和相关的rsync组件一并安装到您的计算机上。 3. 配置rsync:安装完成后,您需要配置rsync以适应您的需求。您可以编辑Cwrsync安装目录下的"rsyncd.conf"文件来设置rsync服务的配置选项。例如,您可以指定要同步的目录、允许访问的用户等。 4. 启动rsync服务:打开命令行终端,导航到Cwrsync安装目录,并执行以下命令来启动rsync服务: ``` cygrunsrv -S rsyncd ``` 5. 使用rsync命令:现在,您可以在命令行使用rsync命令来进行文件同步和备份操作。例如,要将本地目录同步到远程服务器,可以使用以下命令: ``` rsync -avz /path/to/local/folder username@remotehost:/path/to/remote/folder ``` 请注意,Cwrsync使用方式与在Unix系统上使用rsync并无太大区别。您可以参考rsync的文档和教程来了解更多关于rsync的用法和参数选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值