有两台服务器,不在同一局域网 怎么将文件实时同步
回答:
双机服务器一般用ca公司surviveit,不仅可以实时同步数据,还可以主备机切换,更可以主服务器挂掉后,备服务器自动顶替其位置,具体操作如下:两台服务器安装完surviveit后,primary
server和second
server便自动出现在管理软件的managed
servers列表中。此时需要建立一个replication
task:
1选中主服务器primary
server;
2选中数据备份服务器second
server;
3选择网络速度(10m选fast,100m选very
fast);
4选择数据保护等级,一般选择full
protection(既能进行数据的实时备份,也能进行服务器的实时切换);
5从primary
server中选择需要保护的目录;
6选择primary
server中被保护目录中的文件共享;
7选择enable
intelligent
failover和detect
another
computer
or
network
device;
8选择transfer
primary
ip
address
to
the
secondary
server
on
failover,change
primary
ip
address
on
failover。
9从已建立好的replication
task中可更改数据在second
server中的备份路径;
10在replication
task的failover
actions中,分别对primary
server和second
server增加sql70
scripts;
11运行建好replication
task后的第一次数据同步,同步结束后primary
server自动处于保护状态。
追问:
这个可以让两个服务器的同时更新吗
比如说从的上传
主的也会更新吗
而不是只是主的上传
从的更新
回答:
这服务器是你们托管的还是自己维护?托管的话,不会影响速度,除非你一次性更新超大量内容,还有我想说的是,如果是托管的,为啥不双线接入或者三线接入?还得用两台服务器对两种线路的用户?如果是自己维护,三台机器,你就更新主服务器,把那两个设成从服务器,只更新主服务器后那两个就都更新了,更不会拖慢速度了风尘々紫驿
的感言:
虽然没用你的方法还是谢谢你了
呵呵
2011-03-10
科技时代,任何行业都离不开数据的分析以及统筹,如果掌握了最关键的数据及技术,那成功就指日可待,所以数据对于一个企业来说,就是最无形的财富,而一个企业的数据基本都有服务器保存及管理着,如何保证数据安全,实现数据同步及备份?诚恺科技小编就同大家一起来看看在Linux服务器中利用rsync配合inotify实现数据实时同步及备份的方法。
rsync:可以镜像保存整个目录树和文件系统。可以很容易做到保持原来文件的权限、时间、软硬链接等等。第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。
方案:起初用rsync进行数据备份是利用计划任务,定时执行一下命令实现rsync的同步,但最近开发这边修改比较频繁,看来需要实时同步备份来完善备份机制!所以需要利用inotify触发器来改善!达到一旦指定的位置有了新的变动就将其同步!
环境:
CentOS 64 64位
rsync-309
inotify-tools-314
说明:
101016 (rsync+inotify)----------网站程序(/data0/htdocs/)
101019 (rsync)------------------网站程序备份(/data0/htdocs/)
目的:
实现101016的/data0/htdocs/目录下发生任何变动都将实时同步到101019的/data0/htdocs/上(另,这两台都跑有keepalived+nginx,来实现出现故障自动切换的容灾,详细配置会在后面补上)
一、web服务器101016 (rsync+inotify)
1、准备软件包
2、安装Rsync
1)、1234 tar-zxvf rsync-309targz
2)、cdrsync-309
3)、/configure--prefix=/usr/local/rsync
4)、make;makeinstall
建立密码认证文件
[root@ftp ~]# echo "111111">/etc/rsyncd/rsyncdsecrets建立密码认证文件
其中111111可以自己设置密码,rsyncdsecrets名字也可以自己设置;
权限:要将/etc/rsyncd/rsyncdsecrets设置为root拥有, 且权限为600。
# chmod 600 /etc/rsyncd/rsyncdsecrets
3、安装inotify
1)、1234 tar-zxvf inotify-tools-314targz
2)、cdinotify-tools-314
3)、/configure--prefix=/usr/local/inotify
4)、make;makeinstall
4、创建rsync复制脚本
此项功能主要是将ftp端的目录/data0/htdocs/里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给101019的/data0/htdocs里,下面是通过shell脚本实现的。
[root@web ~]# vim /root/shell/rsyncsh
[root@web ~]# chmod u+x /root/shell/rsyncsh
[root@web ~]# setsid /root/shell/rsyncsh &
#后台运行脚本,关闭shell终端继续后台运行
rsyncsh脚本加入开机启动项
# echo "/root/shell/rsyncsh" >> /etc/rclocal
防火墙开启rsync端口:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重启:
# /etc/initd/iptables restart
二、备份服务器101019(rsync)
1、准备工作
创建备份目录:
# mkdir /data0/htdocs
2、安装rsync(备份主机只安装rsync)
1)、1234 tar-zxvf rsync-309targz
2)、cdrsync-309
3)、/configure--prefix=/usr/local/rsync
4)、make;makeinstall
3、建立用户与密码认证文件
[root@backup ~]# echo "root:111111" > /etc/ rsyncd/rsyncdsecrets
[root@backup ~]# less /etc/rsyncd/rsyncdsecrets
root:111111
注意:
请记住,在101016端建立的密码文件,只有密码,没有用户名;而在101019里建立的密码文件,用户名与密码都有。
权限:要将/etc/rsyncd/rsyncdsecrets设置为root拥有, 且权限为600。
#chmod 600 /etc/rsyncd/rsyncdsecrets
4、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd/rsyncdconf
启动rsync服务
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncdconf
# ps -ef |grep rsync
Rsync服务加入开机启动项
# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncdconf" >> /etc/rclocal
防火墙开启rsync端口:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重启:
# /etc/initd/iptables restart
完成,其实这个时候数据已经同步了!
测试一下:
由于/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/为例
主机名可以区别是两台机器,里面的内容完全一直,连文件的属性都一样
再对里面修改一下试试,创建一个文件,然后删除user目录试试
分别在两台电脑上执行以下操作:
1、鼠标右键单击我的电脑——点击管理——点击本地用户和组——点击用户。在用户窗口中鼠标右键单击Guest选择属性。
2、在Guest的属性小窗口中去掉账户已禁用前面的勾,然后点击确定按钮。
3、返回到电脑桌面,鼠标右键单击我的电脑——点击属性——点击蓝色字体的更改设置。
4、在系统属性小窗口中点击更改。使两台计算机的计算机名和工作组名是一样的,然后点击确定。
5、再次回到电脑桌面,右键单击网络邻居——点击属性 ,在网络和共享中心的窗口中点击更改高级共享设置。
6、在高级共享设置中勾选启用网络连接设备的自动设置,并点击保存更改就可以了。
网盘同步功能实际上是将网盘服务器上文件和本地同步目录的文件进行比对,然后对新文件进行自动复制。因此对于用服务器共享目录实现共享的用户,如果要实现同步功能,我们只要利用复制工具实现自动复制即可。
由于同步只是将本地目录文件复制到共享目录保存备份,因此可以借助系统自带的Robocopy命令实现,自动复制则借助任务计划完成。下面以Windows 10系统为例。
在搜索框输入“任务计划”,启动系统自带的任务计划程序组件后点击“创建任务”,按照向导的提示依次创建一个“同步文件”的新任务,触发器是每天17:20(假设17:30下班)开始运行,这样每天17:20开始执行复制任务(图1)。
图1 新建每天执行任务
切换到“操作”,操作是“启动程序”,执行的程序是“robocopy”,参数是“K:\解压缩 \\fdvdsf-pc\解压缩 /mir”,这个批处理程序会将指定文件以增量复制的方式复制到服务器上的共享目录里(图2)。
图2 启动参数设置
命令解释:
K:\解压缩:是指本机需要复制到服务器上共享目录的本地目录
\\fdvdsf-pc\解压缩:指服务器上保存本地备份文件的共享目录,共享目录路径可用在网络组件中打开查看(图3)。
图3 查看共享目录的路径
/mir:指使用镜像方式进行复制,这样可以将本地目录里所有变化(包括新增、修改、删除)文件复制到共享目录里保存。如果需要实现双向同步,那么可以再建立一个任务计划,比如每天早上8点执行“robocopy \\ fdvdsf-pc\解压缩 k:\解压缩 /mir”,这样服务器上文件会同步到本地目录,如服务器共享目录删除文件后,执行上述命令后本地目录同名文件也会同步删除。为了方便使用,还可以结合上述命令,添加“shutdown –s”制作为批处理,实现自动同步后关机。
完成上述的设置,这样每天到了17:20的时候,Robocopy命令会自动将本地文件复制到服务器上,以后在本地目录变化的文件,在每天17:20也会自动同步到服务器上,实现类似网盘的同步效果(图4)。
0条评论