由于需要对网络设备做备份,备份文件是放到windows机器上的。现在需要将备份数据同步到linux备份机器上,想到的方案有三种:
1 2 3 | 1)将windows的备份目录共享出来,然后在linux服务器上进行挂载,最后对挂载目录进行定时同步。这种方式不太安全。
2)使用tftp、sftp方式,也不太安全。
3)推荐通过rsync方式(cwRsyncServer_4.1.0_Installer),windows机器到windows机器之间的定期同步也使用这种方式。
|
下面简单介绍下使用rsync方式的同步过程:
一、windows上的操作记录
1)在windows server上安装配置Cwrsyncserver,按照提示一步步安装即可,需要注意下cwrsyncserver有个设置用户与密码的地方,要么就改为自己的用户名与密码。比如用户Administrator,密码:123456,这个用户名与密码是一会启动服务时需要的,也就是你服务器的用户名和密码,如果感觉不安全,可以考虑在WINDOWS中创建一个用户名和密码。

2)配置rsyncd.conf 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | use chroot = false
strict modes = false
hosts allow = 192.168.1.90
max connections = 5
lock file = rsyncd.lock
log file = rsyncd.log
port = 873
pid = 0
uid = 0
[backup]
path = /cygdrive/d/Backup
read only = yes
transfer logging = yes
list = no
auth users = Administrator
secrets file = /cygdrive/e/Setting/Rsync/rsync_db.ps
特别注意:
以上Windows目录的写法,应该按照POSIX风格来写,默认配置文件的写法cygwin貌似不工作,而要写成cygdrive,如上面D:/Backup,要写成/cygdrive/d/Backup。
|
新建密码文件:E:\Setting\Rsync\rsync_db.ps
1 2 3 4 | Administrator:PASSWD_123@bjk
注意:
此密码文件里的格式是"用户名:密码",这个密码可以随意指定。但最好设置服务器的用户名和密码。如果觉得不安全,就另外创建一个用户名和密码,专门用于rsync同步之用。
但是千万要记得这个创建的用户名对E:\Setting\Rsync\rsync_db.ps这个密码文件要有修改的操作权限。
|
3)启动cwrsync服务(注意: 如果开启了防火墙,则防火墙规则中要添加Tcp端口873允许通信)
右键 我的电脑->管理->服务与应用程序->服务->RsyncServer->右键 属性->登陆-> 在此帐户输入有效的用户名(域用户、要有权限管理E盘的用户名哦),密码和、再次确认密码;此处使用域管理员帐号与密码(如果用户和密码无权限或错误,将无法启动RsyncServer服务)。启动RsyncServer服务,并修改属性为自动,以便后续开机就启动此服务。

服务启动成功后,就可以配置linux客户端了。
二、linux客户端(192.168.1.90)上的操作记录
1)先查看下能否连通windows机器(192.168.1.101)的873端口(rsync端口)。如下表示连接正常!
1 2 3 4 | [root@backup ~]
Trying 192.168.1.101...
Connected to 192.168.1.101.
Escape character is '^]'.
|
2)进入Linux服务器,新建一个backup_passwd的文件,内容为在上面windows中RsyncServer中设定的密码内容:
1 2 3 4 | [root@backup ~]
[root@backup ~]
PASSWD_123@bjk
[root@backup ~]
|
3)linux服务器上要安装rsync环境。这里将windows备份数据同步到linux的/Win_Back目录下(为了安全考虑,可以不添加下面命令中的--delete参数)
4)创建备份脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [root@backup ~]
[root@backup ~]
#!/bin/bash
PASSWORD=/root/backup_passwd
SOURCE='192.168.1.101::backup'
USER=Administrator
DEST=/Win_Back/
echo "start backup file server"
/usr/bin/rsync -av --progress --delete --port=873 --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 --port=873 --password-file=$PASSWORD $USER@$SOURCE $DEST
fi
|
5)定时备份任务,每小时执行一次同步操作
1 2 | [root@backup ~]
0 * * * * /bin/bash -x /root/backup/win_bak.sh > /dev/null 2>&1
|