需求:
一些软件安装在windows上想要对上面的文件进行异地备份
解决:
后来找到cwRsync ——同步Windows文件到Linux,和linux的rsync一样的功效
安装:
链接:https://pan.baidu.com/s/1zDojiAAnpBaCDUCRiYzXzw
提取码:07l1
windows默认安装即可
注意这里填写的是windows的用户名和密码,如果觉得administrator不安全,可以新建一个普通账户写在这里。
使用:
windows上配置rsyncd.conf 文件
cat rsyncd.conf
use chroot = false
strict modes = false #不验证用户密码,
hosts allow = 192.168.1.204 #只允许192.168.1.204这个ip
log file = rsyncd.log
pid file = rsyncd.pid
lock file = rsyncd.lock
port=8888 #端口修改为8888,注意再widnows的防火墙打开这个端口
uid=0 #pid和uid为0,表示指定匿名访问
gid=0
max connections=5
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[backup] #模块名字,这个可以自定义
path = /cygdrive/d/wu #选择备份路径,注意d和e要写成这样d:/wu----> /cygdrive/d/wu
read only = false
transfer logging = yes
list = no
auth users =Administrator #指定访问的用户名
secrets file = /cygdrive/d/Program Files (x86)/ICW/rsync_db.ps #指定访问的用户名密码
cat /cygdrive/d/Program Files (x86)/ICW/rsync_db.ps
Administrator:PASSWD
此密码文件里的格式是"用户名:密码",这个密码可以随意指定。但最好设置服务器的用户名和密码。如果觉得不安全,就另外创建一个用户名和密码,专门用于rsync同步之用。
但是千万要记得这个创建的用户名对E:\Setting\Rsync\rsync_db.ps这个密码文件要有修改的操作权限。
启动:
安装完成后windows-服务,就可以找到,修改好配置文件,重启服务即可
linux客户端:
测试是否可以连通
[root@backup ~]# telnet 192.168.1.101 8888
Trying 192.168.1.101...
Connected to 192.168.1.101.
Escape character is '^]'.
进入Linux服务器,新建一个backup_passwd的文件,内容为在上面windows中RsyncServer中设定的密码内容:
cat backup_passwd
PASSWD
linux服务器上要安装rsync环境。这里将windows备份数据同步到linux的/Win_Back目录下
[root@elk backup]# cat win_back.sh
#!/bin/bash
#create by chy
PASSWORD=/owncloud/backup/backup_passwd
SOURCE='192.168.1.101::backup' #注意这里是IP:模块名字
USER=Administrator #windows用户名
DEST=/owncloud/backup/win_d/
echo "start backup file server"
/usr/bin/rsync -avz --progress --delete --port=8888 --password-file=$PASSWORD $USER@$SOURCE $DEST
if [ $? -eq 0 ]
then
echo "file server backup successfully!"
else
echo "file server backup failure, try again:"
/usr/bin/rsync -avz --progress --delete --port=9999 --password-file=$PASSWORD $USER@$SOURCE $DEST
fi
--delete表示如果有删除也更新,可以实现目标文件夹增加和删除和修改都更新的目的
放到linux的crontab中,每天执行一次,第一次全量备份会比较慢,后期都是增量备份会很快
0 1 * * * /bin/bash /svn/win_back.sh >/dev/null 2>&1 &
问题排查
windows重启后rsync服务并没有启动,服务——RsyncServer,手动启动后报错
“本地计算机上的rsyncserver服务启动后停止,某些服务在未由其他服务或程序”
后查看原来是rsyncserver异常结束时,pid文件未及时删除,导致再次启动服务时因检测到pid文件而认为服务已经启动。而windows的服务管理器并不以pid为检测标准,所以弹出启动又停止的提示
解决:
手动删除esyncserver产生的pid文件,再次启动即可
C:\Program Files (x86)\ICW\rsyncd.pid