rsync 实现 Windows –>> CentOS 之间数据同步

备注:
1. 有设置 /etc/rsyncd.conf 这台主机. /etc/rsyncd.secrets 一定是 “root:Ancky_123” 而不是 “Ancky_123”
2. 没有设置 /etc/rsyncd.conf 这台主机 ,/etc/rsyncd.secrets 也要设置,否则会报错.
3. 两台服务器都要 禁用SELinux ,否则 会报错 rsync failed: Permission denied
1
vi /etc/selinux/config
1
SELINUX=disabled     //然后reboot重启

rsync 实现 Windows –>> CentOS 之间数据同步

1
2
3
https://blog.csdn.net/mshxuyi/article/details/100140447
https://www.cnblogs.com/zhangweiyi/p/10571273.html
https://www.osyunwei.com/archives/4788.html

服务器端 windows 7 47.240.35.199
客户终端 CentOS 7.4 121.196.179.9[或家里笔记本] 需求: centos 根据定时任务运行脚本 自动同步 服务器端 winserver 的数据

服务器端 winserver 47.240.35.199

1. 下载安装rsync

1
2
3
a. 下载: https://www.backupassist.com/rsync/ [官网这里]
a. 下载: https://winsoft.bndstone.com/rsync_tools/cwRsyncServer_4.1.0_Installer.zip        [服务端]
a. 下载: https://winsoft.bndstone.com//rsync_tools/cwRsync_4.1.0_Installer_client.zip      [客户端]

1.png

2. 开始安装
1.png
1.png
1.png

安装路径改为 C:\rsyncserver\ICW

1.png

Service account: verxxxxxx Type password: Ancxxxx

1.png

安装完成后,会自动创建一个 verxxx 的系统账户

1.png

3. 编辑配置文件

C:\rsycnserver\ICW\rsyncd.conf 内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
UID = 0                                       # 0代表不限定用户
GID = 0
use chroot = false
strict modes = false
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

[windata]
path = /cygdrive/c/users/administrator/desktop/            # 和linux不同的是windows的备份目录前面都要加/cygdrive
read only = false                                          #客户端只读
list = false                                               #不允许列出文件
hosts allow = *                                            #允许连接IP,多个IP中间用英文状态下逗号隔,不限制IP填写 *即可
auth users =verxxxxxx                                      #允许连接的用户名
secrets file = etc/rsyncd.secrets                          #存放用户名密码的认证文件路径

1.png
修好完成之后,保存退出

C:\rsyncserver\ICW\etc 下创建 rsyncd.secrets 同步账号密码
verxxxxxx:Ancxxxx

1.png

3. 创建同步的目录
c:\Users\Administrator\Desktop #创建 rsyncfile 目录用于同步 [这步省了,因为桌面本来系统就有]

4. 赋予同步目录权限,把安装时添加系统账号添加进来,并赋予全部权限

1.png

一开始找不到那个管理员,要自已添加
1.png
1.png
1.png
1.png
1.png

重启系统.

5. 启动服务

1
cmd - services.msc - 回车键 -

1.png
1.png

6. 放开端口

阿里云网页后台 – TCP 873 ,UDP 873 端口都要放行.

1.png
1.png

1
netstat -ano|findstr "873"

发现端口已经放行

1.png

7 win2008r2 放行873端口

这一步直接关闭防火墙比放行873端口更好很多,(传输速度更快几十倍)

开始 – 控制面板 – 检查防火墙状态 – 高级设置 – 入站规则 – 端口 – TCP – 873 – 允许连接 – 下一步 – “rsync-tcp” – 完成





开始 – 控制面板 – 检查防火墙状态 – 高级设置 – 入站规则 – 端口 – UDP – 873 – 允许连接 – 下一步 – “rsync-udp” – 完成





二. Rsync客户端配置

Rsync客户端因为已经CentOS 7.2 同步 CentOS 7.2 已经成功了

4. 测试Rsync客户端是否与cwRsyncServer服务端通信成功(cwRsyncServer服务端防火墙需要开启tcp 873端口)

1
yum install telnet                #安装telnet测试工具

1.png

1
telnet 47.240.35.199 873    #输入命令后回车,如下图所示,表示通信成功

1.png

三、设置Rsync客户端与cwRsyncServer服务端同步数据(以下操作在Rsync客户端进行)

1. 测试数据同步

在终端命令行输入

1
rsync -vzrtopg --port=873 --progress --delete verxxxxxx@47.240.35.199::windata /home/wwwroot/default/windata

1.png

此处的密码为cwRsyncServer服务端C:\Program Files\ICW\etc\rsyncd.secrets文件配置的密码 .
回车之后,图上图所示,表示数据同步成功.

1
2
cd  /home/wwwroot/default/windata/  #进入数据同步目录
ls                                  #显示文件信息

1.png

可以看到数据已经存在了

备注:
1. 手动很容易就成功,但一加入 “–password-file=/etc/passwd.txt” 就一直出错,改了一下午都不行,最后换明文密码传输.
2. 关闭防火墙: 开始 – 控制面板 – Windows 防火墙 – 打开或关闭防火墙 – 关闭windows 防火墙
3. cmd – services.msc – RsyncServer – 重启, 如果重启不了,有可能是 “rsyncd.conf” 变成了 “rsyncd.conf.txt” ,没改回去.
1
yum  install  sshpass   //安装sshpass
1
vi  /home/windata.sh
1
sshpass  -p  Anxxxxxxxxxxxxxxxxxxxx  rsync -vzrtopg --port=873 --progress --delete verxxxxxx@47.240.35.199::windata /home/wwwroot/default/windata

=============================================================================================
2. 添加计划任务,每天自动执行数据同步脚本

1
vi  /etc/passwd.txt         #配置文件,添加以下内容

Anxxxxx # 把密码保存在这

1
chmod 600 /etc/passwd.txt   #设置文件权限,只设置文件所有者具有读取、写入权限即可
1
2
cd /home
vi  windata.sh   #编辑,添加以下内容
1
2
#!/bin/sh
rsync -vzrtopg --port=873 --progress --delete verxxxxxx@47.240.35.199::windata /home/wwwroot/default/windata --password-file=/etc/passwd.txt
1
:wq!   #保存,退出
1
chmod +x /home/windata.sh    #添加脚本直接权限

安装Crontab,定期执行任务
[https://www.vpser.net/manage/crontab.html]

1
2
3
yum install vixie-cron crontabs      //安装Crontab            
systemctl enable crond.service       //设为开机自启动
service crond start                  //启动
1
vi  /etc/crontab                     #编辑,在最后添加以下内容
1
0 3 * * * root /home/windata.sh     #表示每天凌晨3点执行备份 [不清楚的看这边:https://www.vpser.net/manage/crontab.html 或 https://www.bndstone.com/425.html]
1
:wq!                                #保存,退出
1
/bin/systemctl restart crond.service   #重启

设置完成之后,

每天凌晨3点,Rsync客户端会自动同步cwRsyncServer服务端 桌面上 目录数据到自己的 /home/wwwroot/default/windata/ 目录中

激动人心的图片来了,表明自动同步已完全成功
1.png

Leave a Reply

Your email address will not be published. Required fields are marked *