cwRsyncServer 从 windows server 2008 同步到 CentOS

20190401 从 windows server 2008 同步到 CentOS

环境构成:

服务器端:

	visualbox 虚拟机
	Windows Server2008
	192.168.1.178

客户端 :

	visualbox 虚拟机
	CentOS 6 ( CentOS 7 也是一样的)
	192.168.1.184

目标:

将 Windows Server2008 伤的文件服务器目录自动同步到 CentOS 服务器上去

1、下载

https://www.backupassist.com/rsync/
选择 cwRsyncServer_4.1.0_Installer.zip

2、安装 cwRsyncServer

  1. 预先建立一个不同于 Administrator 的账户 ,例如: dhbm
    ** 安装过程中会自动创建一个账号,并要求设置密码,但是,我第一次被 360 挡住之后,后续死活不成功
    ** 我第一次测试成功就是直接使用了Administrator,并使用Administrator密码

  2. 安装过程基本上是一路回车,除了建立账号之外,如下图:
    这是安装程序自动建立的账号,

    我后续使用了以上系统账号才正确的,如下图

在这里插入图片描述
3. 安装完成后的信息如下:
** 建议不要使用她自动推荐的缺省目录,例如:我使用了 c:\rsync20190401
** 如果一次不成功,下次再换个目录测试,例如:c:\rsync20190401-1
在这里插入图片描述

  1. 如果第一次不成功,卸载的时候,要运行以下 3 个,最好是以下 1,2,3 的次序执行!
    在这里插入图片描述

    1. 以管理员身份运行 cygrunserver!
      ** 必须管理员身份,否则,在本地服务里面找不到 Rsyncserver
      在这里插入图片描述
  2. 找到并设置 Rsyncserver 自动运行
    在这里插入图片描述

3、修改配置文件


** 安装的时候已经自动配置好了,以下 hosts allow 可以在实际运行的时候,指定客户端 ip

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log

# add by wzh 20190401
port = 873 #默认端口873 
uid = 0 #不指定uid,不加这一行将无法使用任何账户 
gid = 0 #不指定gid 
max connections = 100 #最大连接数100

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]
path = /cygdrive/c/work
read only = false
transfer logging = yes
# add by wzh 20190401
lock file = rsyncd.lock

** 以上配置了一个 测试模块 test ,后续可以照着 test 模块建立其他需要同步的模块

** 按照以上配置,先在 c:盘建立好一个work目录,并 copy 几个文件进去,用于测试

到这里, windows 服务端就算配置好了!如果中途有修改配置,青重新启动 Rsyncserver 服务

4、 linux 端安装 rsync

  1. sudo yum -y install rsync

  2. su
    输入密码之后,以 root 运行

  3. 设置密码文件
    假设刚才windows 上设置了用户 dhbm ,密码:XXXXXXXXXX123
    实际请换成自己的密码

     sudo echo "XXXXXXXXXX123" > /root/rsync_user.pwd
     sudo chmod 600 /root/rsync_user.pwd
    
  4. 建立一个对应服务器上刚才的 test 模块的 work 目录 (名字不一定也要叫work)
    mkdir /home/dhbm/work

  5. 测试 rsync 连接

     	rsync -avz --progress --delete --password-file=/root/rsync_user.pwd [email protected]::test /home/dhbm/work	
     返回结果如下:
     	[email protected]::test /home/dhbm
     	receiving incremental file list
     	deleting .ssh/authorized_keys
     	deleting .ssh/
     	deleting .viminfo
     	deleting .bashrc
     	deleting .bash_profile
     	deleting .bash_logout
     	deleting .bash_history
     	./
     	......
    
  6. 错误处理 @ERROR: failed to open lock file
    rsync error: error starting client-server protocol (code 5) at main.c(1648) [Receiver=3.1.2]

    参考 https://www.cnblogs.com/djane/articles/4618235.html
    加上 lock file = rsyncd.lock

  7. 错误处理 @ERROR: Unknown module ‘svndata’
    rsync error: error starting client-server protocol (code 5) at main.c(1648) [Receiver=3.1.2]

    抄写别人的测试命令时,以上模块名字没有修改,记得改成自己在 windows 上设置的模块名字 test

8.错误处理 cwRsyncServer执行后服务界面找不到服务
** 必须以管理员身份运行
** 可以按照前面提到的 uninstall 1,2,3 卸载后,重新来过
** 可以按照前面提到的,在安装到另一个目录试试

5、建立一个脚本命令自动同步

  1. 创建 sh 文件
    touch /root/rsync_data.sh
    chmod +x /root/rsync_data.sh
    vim /root/rsync_data.sh
    内容如下:

     #!/bin/bash
    
     USER="dhbm"
     PASS="/root/rsync_user.pwd"
     SOURCE="192.168.0.189::test"
     DEST="/home/dhbm/work"
     FILE="/root/rsync.log"
     CMD="/usr/bin/rsync"
     
     while true
     do
         $CMD -avz --bwlimit=512 --progress --delete --password-file=$PASS $USER@$SOURCE $DEST
         chown -R dhbm.dhbm /home/dhbm/work
     
         TIME="$(date "+%F %H:%M:%S")"
         if [ $? -eq 0 ];then
             echo "$TIME ---> rsync success" >> $FILE
         else
             echo "$TIME ---> rsync failed" >> $FILE
         fi
     
         sleep 20
     done
    
  2. 执行 脚本
    cd /root
    ./rsync_data.sh

  3. 再打开一个 Terminal ,看看是否已经同步了 windows 上的 c:/work 的文件

  4. 在 widnows 端,往 c:/work 拖入几个新文件,同时观察 Centos 这边是否立即同步过来

  5. 确认服务是否已经运行
    ps -ef |grep rsync
    root 3846 3833 0 17:46 tty1 00:00:00 /bin/bash ./rsync_data.sh
    root 3847 3846 0 17:46 tty1 00:00:01 /usr/bin/rsync -avz --bwlimit=512 --progress --delete --password-file=/root/rsync_user.pwd [email protected]::upload /home/dhbm/upload
    root 3848 3847 4 17:46 tty1 00:11:31 /usr/bin/rsync -avz --bwlimit=512 --progress --delete --password-file=/root/rsync_user.pwd [email protected]::upload /home/dhbm/upload
    dhbm 4010 3990 0 22:31 pts/0 00:00:00 grep --color=auto rsync

6、Centos 上设置 rsync 服务自动运行

6、查看活动log

su 之后以 root 身份查看
cd /root
cat rsync.log
或者 tail rsync.log

或者
sudo cat /root/rsync.log

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章