基于Rsync实现Linux To Windows文件同步
- 简介
- 安装步骤
- 安装Linux服务器端
- 1.安装rsync
- 2.启动Rsync
- 3.验证是否启动成功
- 4.修改rsyncd.conf
- 重启rsync服务
- 安装Windows客户端
- 1.rsync客户端安装:
- 2.配置环境变量
- 3.测试rsync命令
- 4.创建密码文件
- 5.密码文件授权
- 6.查看服务端需要同步的列表
- 7.拉取文件命令
- 命令参数解释
- 配置定时同步脚本
- 编写window定时拉取脚本
- 配置计算机任务计划程序
- 1.打开任务计划程序
- 2.创建基本任务
- ①
- ②
- ③
- ④
- ⑤
- ⑥完成
- 遇到的问题
- @ERROR: auth failed on module hadoop
- @ERROR: chdir failed
简介
安装步骤
安装Linux服务器端
1.安装rsync
yum -y install rsync
2.启动Rsync
systemctl start rsyncd
3.验证是否启动成功
netstat -tlnp
默认端口号:873
4.修改rsyncd.conf
rsyncd.conf配置详情
vim /etc/rsyncd.conf
#文件夹权限
uid = root
gid = root
#是否越过软链接文件
use chroot = no
[test]
#密码保存位置
secrets file = /etc/rsyncd.password
#rsync用户
auth users = vendetta
hosts allow = 192.168.0.105/32 192.168.0.103/32 #多个放行ip空格隔开
path = /opt/
list = yes
read only = no
ignore errors
这里一定要有path
描述的路径,否则客户端会报错如下
touch /etc/rsyncd.password # 创建密码文件
vi /etc/rsyncd.password # 输入账号密码,例如:vendetta:123456
chmod 600 /etc/rsync d.password # 服务器端密码所属用户/用户组为root,权限为600
重启rsync服务
systemctl restart rsyncd
安装Windows客户端
1.rsync客户端安装:
客户端位置:
安装路径为D盘或者C盘的根路径下,路径中不能有中文和特殊符号
安装完成后,将压缩包中的chown.exe和cwrsync.cmd复制并替换到安装目录下
双击cwrsync.cmd执行,会生成home目录,这里很关键,没有生成的话程序无法正常运行;
2.配置环境变量
让rsync在cmd能直接运行;;bin路径
3.测试rsync命令
在cmd中测试rsync命令,弹出help信息为正常,如图
4.创建密码文件
在bin目录下创建密码文件,密码为:123456
实际环境根据自己服务端配置的密码一致
5.密码文件授权
cmd切换到bin目录下,使用chmod将密码文件权限配置为600,chmod.exe 600 rsyncd.password
6.查看服务端需要同步的列表
执行一下看远程服务端的文件列表:rsync --password-file=/cygdrive/C/cwRsync/rsyncd.password root@192.168.137.24::test
如果报错,可能需要授权密码文件,这里需要注意一下,你当前是哪个登录用户就授权给哪个,chown administrator /cygdriver/c/cwRsync/bin/rsyncd.password
7.拉取文件命令
拉取命令:rsync -avPz --password-file=/cygdrive/C/cwRsync/rsyncd.password --progress --delete root@192.168.137.24::test /cygdrive/C/test/
命令参数解释
配置定时同步脚本
编写window定时拉取脚本
@echo off
rsync -avPz --password-file=/cygdrive/C/cwRsync/rsyncd.password --progress --delete root@192.168.137.24::test /cygdrive/C/test/
配置计算机任务计划程序
1.打开任务计划程序
打开后
2.创建基本任务
①
②
③
④
⑤
⑥完成
遇到的问题
@ERROR: auth failed on module hadoop
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1296) [sender=2.6.8]
解决思路:
①是你的rsyncd.password文件没有授权:
chmod.exe 600 rsyncd.password
chown.exe administrator rsyncd.password
②密码不正确:修改密码
@ERROR: chdir failed
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=2.6.8]
解决思路:
①服务器端rsyncd.conf中配置的path目录不存在:
建立目录
②SeLinux开启了:
#临时关闭 SELinux
setenforce 0
#永久关闭 SElinux
vim /etc/selinux/config
SELINUX=enforcing #将 SELINUX=enforcing改为SELINUX=disabled,保存后退出