这是为我们网站解决南北电信网通互联互通问题而写的一个程序。

优游中国(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

镜像服务器文件实时监控同步程序相关推荐

  1. 服务器部署 配置jetty运行参数_Zookeeper+websocket实现对分布式服务器的实时监控...

    Zookeeper简介 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统. 简单来说就是一个Zookeeper注册同步中心,内部结构为一个树形目录,每个节点上可以存放一定量(默 ...

  2. 公司服务器文件拷贝痕迹,服务器文件拷贝监控

    服务器文件拷贝监控 内容精选 换一换 在FusionInsight Manager软件安装及使用过程中,针对Tomcat基于开源做了如下功能增强:升级Tomcat版本为官方稳定版本.设置应用程序web ...

  3. 拷贝服务器文件有监控的,服务器文件拷贝监控

    服务器文件拷贝监控 内容精选 换一换 本章节介绍如何将下载的证书安装到Apache服务器上.安装好证书后,您的Web服务器将能支持SSL通信,从而保证您Web服务器的通信安全.如果证书安装过程中遇到问 ...

  4. 服务器之间文件同步 go,基于golang文件实时监控并同步远端服务器工具

    ### SftpSync 基于golang开发的 文件实时同步软件 ### 前言 1.本人是个重度某度云用户,但是云盘的速度不开会员的情况下真是太慢了,而且也不能实时备份,所以想过自己搭建一个NAS. ...

  5. Linux服务器间文件夹监控同步文件脚本

    使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/ ...

  6. 二十九、rsync+inotity实时监控同步工具

    一.场景应用:                                    客户通过url访问资源(查询,下载等),并发量是非常高的,所以运用负载均衡分担web服务器的压力,在后端连接不同的 ...

  7. 服务器文件数量监控,服务器监控指标有哪些?好文章一定要收藏

    CPU相关监控项 以下为CPU使用率相关监控指标,可参考Linux的top命令来理解各项指标含义.监控项名称监控项含义单位说明 Host.cpu.idle当前空闲CPU百分比% Host.cpu.sy ...

  8. 局域网下两个电脑的文件实时传输--python程序

    一.保证要传输文件的两个电脑在同一个局域网下(即同一个wifi下). 二.有两部分程序,分为sender和reciever两部分,sender放在要发送的电脑上,reciever放在要接受文件的电脑上 ...

  9. 服务器文件变更监控,监控文件夹变化并ftp到服务器

    监控文件夹变化并ftp到服务器 内容精选 换一换 Loader是在开源Sqoop组件的基础上进行了一些扩展,除了包含Sqoop开源组件本身已有的功能外,还开发了如下的增强特性:提供数据转化功能支持图形 ...

最新文章

  1. Cisco网院成立10周年-未来三年在蓉增50所
  2. 实习二 分组密码加密_分组密码加密模式
  3. Linux实现MYSQl数据库的定时备份
  4. 在嵌入式公司和在互联网公司写软件,有什么区别?
  5. 我的世界html导入整合包教程,《我的世界手机版》如何制作一个整合包教程攻略...
  6. linux syslog 删除文件_Linux没有当心删除日记文件syslog怎样办
  7. 一个程序员的感慨的《虚拟光驱》
  8. Hibernate操作数据库步骤(包括语法)
  9. spring security oauth2 资源服务器配置
  10. c语言双向循环链表合并,双向循环链表的合并
  11. 一元稀疏多项式计算器
  12. 心灵鸡汤——人生哲理
  13. 安卓系统目录说明大全,各文件夹是什么,可以删除吗?(以MIUI为例)
  14. 微信界面Android实现
  15. Thinkpad linux 读卡器驱动
  16. STM32F103 实例应用(2)——DAP仿真下载以及STVP下载
  17. 应该去看看的十大论坛!!!
  18. jam stack_纯JAM堆栈
  19. netstat查看系统TIME_WAIT状态个数
  20. TA游戏推荐:暗黑神作 《万神之怒EX》

热门文章

  1. koa --- 使用koa-multer和element-ui组件上传头像
  2. Mysql中的联合索引、前缀索引、覆盖索引
  3. 14 代码分割之lazy:Suspense与路由懒加载
  4. Drbd+Pacemaker实现高可用
  5. Mysql:This version of MySQL doesn’t yet support ‘LIMIT IN/ALL/ANY/SOME 错误解决
  6. vim编程 插入 保存不退出 保存退出 退出不保存 另存为其他文件名 保存覆盖现有文件...
  7. spring in action 读书笔记
  8. BundleFusion那些事儿
  9. FFMpeg中apiexample.c例子分析——解码分析
  10. Halcon|读取3D相机点云数据