本文解决的是Windows 下目录及文件向Linux同步的问题,Windows向 Windows同步的请参考:http://www.idcfree.com/article-852-1.html
环境介绍:
Windows文件服务器:Windows SERVER 2008 (64bit) IP:10.10.3.157
Linux备份服务器: Centos 6.4 (64bit) IP:10.10.3.153
Cwrsyncserver版本:cwRsyncServer_4.1.0_Installer
第一步:
在windows server 2008上配置Cwrsyncserver,安装很简单,下一步下一步就完成了,注意下cwrsyncserver有个设置用户与密码的地方,得记录下,要么就改为你自己的用户名与密码。
比如Administrator 密码:123456,这个用户名与密码是一会启动服务时需要的,也就是你服务器的用户名和密码,如果感觉不安全,可以考虑在WINDOWS中创建一个用户名和密码。
主要配置文件:rsyncd.conf
use chroot = false strict modes = false hosts allow = * log file = rsyncd.log # Module definitions # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work # [test] #这里我就不改名了,使用默认模块名字 path = /cygdrive/d/update #选择路径,此表示为整个E盘路径,不支持中文 read only = yes #只读模式 transfer logging = yes uid = 0 gid = 0
第二步:
启动cwrsync服务:
右键 我的电脑->管理->服务与应用程序->服务->RsyncServer->右键 属性->登陆-> 在此帐户输入有效的用户名(域用户、要有权限管理E盘的用户名哦),密码和、再次确认密码;此处我使用域管理员帐号与密码(如果用户和密码无权限或错误,将无法启动RsyncServer服务)。启动RsyncServer服务,并修改属性为自动,以便后续开机就启动此服务。
服务启动成功后,就可以配置linux客户端了。
第三步:
# telnet 10.10.3.157 873 #telnet windows server 2008的rsync服务的端口,能正常连接后就表示windows上的rsync服务正常了。
第四步:
进入Linux服务器,新建一个fzh_passwd的文件,内容为我在windows中RsyncServer中设定的密码内容:
# cd /root
# vi fzh_passwd #再将密码写入些文件中
dsideal
# chmod 600 fzh_passwd #改下权限,只有root用户能看。
第五步:
将windows D盘的数据同步至/update/这个分区下:
yum install rsync -y
#rsync -av --progress --delete --password-file=/root/fzh_passwd Administrator@10.10.3.157::test /update/
第六步:
mkdir /root/backup vi /root/backup/backup_fileserver.sh
同步完成后,将此参数写成一个shell脚本,再设定为每小时同步一次
脚本内容如下:
#!/bin/bash #create by fengzehua PASSWORD=/root/fzh_passwd SOURCE='10.10.3.157::test' USER=Administrator DEST=/update/ echo "start backup file server" /usr/bin/rsync -av --progress --delete --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 -av --progress --delete --password-file=$PASSWORD $USER@$SOURCE $DEST fi
再把他写入计划任务,每小时执行一次检查。
#crontab -e
* */1 * * * /bin/bash /root/backup/backup_fileserver.sh > /dev/null 2>&1
保存退出后;重启crond服务
service crond restart