利用CwRsync实现linux与windows文件同步
一. Linux服务端步骤:
1.检查并确认相应的包已安装
rpm -qa | grep xinetd
rpm -qa | grep rsync
#如果没有安装需要先安装成功
yum install xinetd
yum install rsync
2.修改/etc/rsyncd.conf配置文件添加配置项
uid=root
gid=root
use chroot=no
max connections=5
hosts allow=172.16.3.0/24
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
log file=/var/log/rsyncd.log
[db] #指定模块名称
path=/dbbak/ #指定需要同步的目录
comment= dbbackup rsync
ignore errors
read only = no
list = yes
auth users= root #此处填写服务端系统账号
secrets file =/etc/rsyncd.secrets #口令文件
3.创建/etc/rsyncd.secrets口令文件
root:xxxxxxxx #填写格式为用户名:密码
4.修改/etc/xinetd.d/rsync文件
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no #将yes改为no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
5.启动rsync服务并验证启动成功
#/etc/init.d/xinetd start
#chkconfig xinetd on #添加开机启动
#chkconfig rsync on #添加开机启动
#netstat -antlp | grep :873 #验证启动成功
tcp 0 0 :::873 :::* LISTEN 27566/xinetd
二. windows客户端步骤:
1.windows客户端需要首先安装cwRsync_4.0.5_Installer 客户端软件
2.在指定目录创建口令文件例如:
e:/dbbak/rsync.pass 文件内容只填写root账号对应的口令即可
C:\Program Files (x86)\cwRsync\bin\rsync.exe -vzrtu --delete root@172.16.4.21::db /cygdrive/e/dbbak --password-file=/cygdrive/e/rsync.pass
/cygdrive/e/dbbak的含义是备份到windows本地的e:\dbbak路径,其他路径依葫芦画瓢即可,比如E:\test,写成 /cygdrive/E/test
3.创建计划任务定时从服务端同步文件,调用bat文件
@echo off "C:\Program Files (x86)\cwRsync\bin\rsync.exe" -vzrtu --delete root@172.16.4.21::db /cygdrive/e/dbbak --password-file=/cygdrive/e/rsync.pass
注:
执行rsync同步时如果报错如下,需要修改密码文件的权限
password file must be owned by root when running as root:
(1).chmod.exe -c 600 /cygdrive/e/dbbak/rsync.pass
mode of `/cygdrive/e/dbbak/rsync.pass' changed to 0600 (rw-------)
(2).chown.exe administrator /cygdrive/e/dbbak/rsync.pass
如果没有chown,需要从服务端复制一个过来