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 [客户端] |
2. 开始安装
安装路径改为 C:\rsyncserver\ICW
Service account: verxxxxxx Type password: Ancxxxx
安装完成后,会自动创建一个 verxxx 的系统账户
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 #存放用户名密码的认证文件路径 |
修好完成之后,保存退出
C:\rsyncserver\ICW\etc 下创建 rsyncd.secrets 同步账号密码
verxxxxxx:Ancxxxx
3. 创建同步的目录
c:\Users\Administrator\Desktop #创建 rsyncfile 目录用于同步 [这步省了,因为桌面本来系统就有]
4. 赋予同步目录权限,把安装时添加系统账号添加进来,并赋予全部权限
一开始找不到那个管理员,要自已添加
重启系统.
5. 启动服务
1 | cmd - services.msc - 回车键 - |
6. 放开端口
阿里云网页后台 – TCP 873 ,UDP 873 端口都要放行.
1 | netstat -ano|findstr "873" |
发现端口已经放行
7 win2008r2 放行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 | telnet 47.240.35.199 873 #输入命令后回车,如下图所示,表示通信成功 |
三、设置Rsync客户端与cwRsyncServer服务端同步数据(以下操作在Rsync客户端进行)
1. 测试数据同步
在终端命令行输入
1 | rsync -vzrtopg --port=873 --progress --delete verxxxxxx@47.240.35.199::windata /home/wwwroot/default/windata |
此处的密码为cwRsyncServer服务端C:\Program Files\ICW\etc\rsyncd.secrets文件配置的密码 .
回车之后,图上图所示,表示数据同步成功.
1 2 | cd /home/wwwroot/default/windata/ #进入数据同步目录 ls #显示文件信息 |
可以看到数据已经存在了
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/ 目录中
激动人心的图片来了,表明自动同步已完全成功