镜像服务器文件实时监控同步程序
这是为我们网站解决南北电信网通互联互通问题而写的一个程序。
优游中国(www.yooyocn.com)是一个大型旅游门户网站,提供了资讯,视频,图片,博客,论坛等大数据量的业务内容。
为了使全国各地的网友都能够快速访问我们的网站,我们部署了三台服务器,一台双线主服务器,一台网通专线服务器,一台电信专线服务器。通过智能DNS解析,使网通的用户访问网通服务器,电信用户访问电信服务器。
而双线位于我们所在的城市,仅供我们网站编辑人员使用。因为我们的现状,双线就是双慢。所以,只只我们的编辑人员操作它上面的内容管理系统(CMS),把资讯,视频,图片上传到这台服务器上。然后,需要一个方法把双线主服务上新增加或修改的内容分发(也就是复制)到网通和电信的服务器,使网通电信用户都能看到同样的内容。
这就出来两个问题,一是同步,是增量同步,二是实时。
我花了很多时间寻找满足需求的工具。我记得在两年以前,镜像服务器应该是一个热门话题吧。这样的工具应该不少。但出乎意料,都是一些定时全部复制的软件。没有说是网站增加修改文件了,马上就可以同步到其它服务器上。例如,当初很流行的Update Now! ,2000年的东西,至今还有很多人在用。CuteFTP 8的文件同步功能,最少是每天运行一次,并且是遍历所有文件后把不同的文件FTP过去。
晚上和朋友郁闷地谈起这个事,他主要是做WinForm的,立马说.NET里有文件监控的类。可以实时获取增加或变更的文件。我大笑,好啊,正发愁呢!.NET的FTP类也很强,那就不如自己搞!第二天花一个上午,研究FileSystemWatcher。下午出个了DEMO,果然很强,就决定做。实现流程代码量并不多,一天半时间就搞定了,剩下三天都在解决其中的各种问题。在服务器上运行时,问题一个一个出现,被自以为完美地解决,高兴一会后,发现有更棘手问题出现…
程序主要实现了如下功能:
通过FileSystemWatcher实时监控指定的文件夹,取得文件夹下增加或修改的文件名,通过“NotifyFilters.Size”属性实现。它有很多属性,LastAccess,LastWrite,测试时把我搞得很糊涂,往这个文件夹下粘贴一个文件,会引发好几次这个事件。查了好久才明白,COPY操作确实是这样。但具体为啥,MSDN上也没说清。好在服务器上运行时没出现这个现象,也放过了。
捕获文件名后没有立即FTP,把文件信息放在了XML中,FTP从XML文件中读取文件名并上传,上传成功的信息移到另外的XML中。以上过程中的出现的异常也放在日志XML中。这个处理流程,也是我花了一晚上才想起来的。
所以,这个程序代码主要有三大块,一是监控,二是读写XML,三是FTP。
实现这些功能的代码并不多,不复杂,但我的收获不是程序本身,而是又一次体会到了编码时的快乐和乐趣。
在写这个程序时,参考了很多资料,很多网友写的代码。所以,当我也做出一些东西时,我把它开源出来,希望能让更多的人受益。
最后,这个程序到现在为止,虽然能运行,但它并未真正部署。因为,我们选择了更好的服务器架构解决方案,具体请看我的另一篇文章。
另外,这个程序还有很多遗憾没有解决,希望能够以此抛砖引玉,更多的人,做出更优秀的程序。
源码下载:/Files/xtigmh/FileSystemWatcher200801141016.rar
转载于:https://www.cnblogs.com/xtigmh/archive/2008/01/14/1037818.html
镜像服务器文件实时监控同步程序相关推荐
- 服务器部署 配置jetty运行参数_Zookeeper+websocket实现对分布式服务器的实时监控...
Zookeeper简介 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统. 简单来说就是一个Zookeeper注册同步中心,内部结构为一个树形目录,每个节点上可以存放一定量(默 ...
- 公司服务器文件拷贝痕迹,服务器文件拷贝监控
服务器文件拷贝监控 内容精选 换一换 在FusionInsight Manager软件安装及使用过程中,针对Tomcat基于开源做了如下功能增强:升级Tomcat版本为官方稳定版本.设置应用程序web ...
- 拷贝服务器文件有监控的,服务器文件拷贝监控
服务器文件拷贝监控 内容精选 换一换 本章节介绍如何将下载的证书安装到Apache服务器上.安装好证书后,您的Web服务器将能支持SSL通信,从而保证您Web服务器的通信安全.如果证书安装过程中遇到问 ...
- 服务器之间文件同步 go,基于golang文件实时监控并同步远端服务器工具
### SftpSync 基于golang开发的 文件实时同步软件 ### 前言 1.本人是个重度某度云用户,但是云盘的速度不开会员的情况下真是太慢了,而且也不能实时备份,所以想过自己搭建一个NAS. ...
- Linux服务器间文件夹监控同步文件脚本
使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/ ...
- 二十九、rsync+inotity实时监控同步工具
一.场景应用: 客户通过url访问资源(查询,下载等),并发量是非常高的,所以运用负载均衡分担web服务器的压力,在后端连接不同的 ...
- 服务器文件数量监控,服务器监控指标有哪些?好文章一定要收藏
CPU相关监控项 以下为CPU使用率相关监控指标,可参考Linux的top命令来理解各项指标含义.监控项名称监控项含义单位说明 Host.cpu.idle当前空闲CPU百分比% Host.cpu.sy ...
- 局域网下两个电脑的文件实时传输--python程序
一.保证要传输文件的两个电脑在同一个局域网下(即同一个wifi下). 二.有两部分程序,分为sender和reciever两部分,sender放在要发送的电脑上,reciever放在要接受文件的电脑上 ...
- 服务器文件变更监控,监控文件夹变化并ftp到服务器
监控文件夹变化并ftp到服务器 内容精选 换一换 Loader是在开源Sqoop组件的基础上进行了一些扩展,除了包含Sqoop开源组件本身已有的功能外,还开发了如下的增强特性:提供数据转化功能支持图形 ...
最新文章
- Cisco网院成立10周年-未来三年在蓉增50所
- 实习二 分组密码加密_分组密码加密模式
- Linux实现MYSQl数据库的定时备份
- 在嵌入式公司和在互联网公司写软件,有什么区别?
- 我的世界html导入整合包教程,《我的世界手机版》如何制作一个整合包教程攻略...
- linux syslog 删除文件_Linux没有当心删除日记文件syslog怎样办
- 一个程序员的感慨的《虚拟光驱》
- Hibernate操作数据库步骤(包括语法)
- spring security oauth2 资源服务器配置
- c语言双向循环链表合并,双向循环链表的合并
- 一元稀疏多项式计算器
- 心灵鸡汤——人生哲理
- 安卓系统目录说明大全,各文件夹是什么,可以删除吗?(以MIUI为例)
- 微信界面Android实现
- Thinkpad linux 读卡器驱动
- STM32F103 实例应用(2)——DAP仿真下载以及STVP下载
- 应该去看看的十大论坛!!!
- jam stack_纯JAM堆栈
- netstat查看系统TIME_WAIT状态个数
- TA游戏推荐:暗黑神作 《万神之怒EX》
热门文章
- koa --- 使用koa-multer和element-ui组件上传头像
- Mysql中的联合索引、前缀索引、覆盖索引
- 14 代码分割之lazy:Suspense与路由懒加载
- Drbd+Pacemaker实现高可用
- Mysql:This version of MySQL doesn’t yet support ‘LIMIT IN/ALL/ANY/SOME 错误解决
- vim编程 插入 保存不退出 保存退出 退出不保存 另存为其他文件名 保存覆盖现有文件...
- spring in action 读书笔记
- BundleFusion那些事儿
- FFMpeg中apiexample.c例子分析——解码分析
- Halcon|读取3D相机点云数据