| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:关于局域服务器文件监控的问题
只看楼主 加入收藏
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
结帖率:78.95%
收藏
已结贴  问题点数:20 回复次数:4 
关于局域服务器文件监控的问题
公司局域服务器上受控文件夹中的文件,其中文件的名称上开始几个字符是符合一些规则的代码,称为“文件代码”,后面的内容称为“文件名称”
文件在放入该文件夹之前会在一个过渡的文件夹中存放一段时间,用于审核等等用途

我的目的是监控这些文件,需求达到的效果是:
1、检查受控文件夹的文件是否是最新的(通过与过渡文件夹中的文件对比)
   就是说,一旦有文件出现在过渡文件夹中,那么这份文件要么就是新的,要么就是更新的
   然后马上给出相关人员提示,这份文件要发放了或者是更新了,要注意操作
2、如果受控文件夹的文件是最新的,那么相关人员可以通过点击直接定位到文件在受控文件夹中的所在位置
3、如果受控文件夹的文件不是最新的,那么相关人员在点击时就会提示受控文件夹中的文件还没有更新

我的思路是这样的:
1、扫描受控文件夹,获取其中的文件代码,文件名称和文件最后修改时间,记录到ACCESS数据库
2、扫描过渡文件夹,获取其中的文件代码,文件名称和文件最后修改时间,以文件代码为索引条件,
   在ACCESS数据库中查找相同文件代码的最后修改时间是否相同

我的问题是:
1、扫描受控文件夹所产生的数据库肯定需要不断更新才能反映出最新状况,
   但文件夹中如果文件较多,约为20000个,扫描和记录的负担是否会太重?
2、看看有没有其他更简洁的思路,请大神指点
搜索更多相关主题的帖子: 服务器 文件夹 监控 
2015-01-08 12:06
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
我的思路是这样的:
1、扫描受控文件夹,获取其中的文件代码,文件名称和文件最后修改时间,记录到ACCESS数据库
2、扫描过渡文件夹,获取其中的文件代码,文件名称和文件最后修改时间,以文件代码为索引条件,
   在ACCESS数据库中查找相同文件代码的最后修改时间是否相同

另外一个思路是这样的:
1、扫描受控文件夹,获取其中的文件代码,文件名称和文件最后修改时间,记录到ACCESS数据库
2、扫描过渡文件夹,获取其中的文件代码,文件名称和文件最后修改时间,以文件代码为索引条件,
   在ACCESS数据库中查找相同文件代码的最后修改时间是否相同
   不相同的就替换,不存在就新增
3、扫描受控文件夹,查找该文件代码所对应文件的最后修改时间与ACCESS数据库进行对比
   因为此时数据库已经修改过,可以对比出结果
2015-01-08 13:51
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
我想到的办法是:
使用 DOS 命令 XCOPY 来复制最新的文件和更新了文件。复制过程中,生成文件日志。
然后读这个文件,根据这个日志文件来显示提示。

给个我们服务器定时备份文件的批处理给你参考一下。
@echo off

Echo --- 开始复制备份 ----
Echo ---%date% %time% 开始复制备份 ----                    >>"G:\pub\baklog\%date%.txt"

echo --- %time% 复制 WORD 文件 ---                         >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.DOC" "D:\doc\*.doc" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

ECHO --- %time% 复制 EXICEL 文件 ---                       >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.xls" "D:\doc\*.xls" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

ECHO --- %time% 复制 WPS 文件 ---                          >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.wps" "D:\doc\*.wps" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

ECHO --- %time% 复制 JPG图像 文件 ---                      >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.jpg" "D:\doc\*.jpg" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

ECHO --- %time% 复制 PUB出版物 文件 ---                    >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.pug" "D:\doc\*.pug" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

ECHO --- %time% 复制 TXT 文件 ---                          >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.txt" "D:\doc\*.txt" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

ECHO --- %time% 复制 PSD 文件 ---                          >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.psd" "D:\doc\*.psd" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

ECHO --- %time% 复制 Core 文件 ---                         >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.cdr" "D:\doc\*.cdr" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

ECHO --- %time% 复制 PDF 文件 ---                          >>"G:\pub\baklog\%date%.txt"
Xcopy "F:\FTP\Anonymous\*.pdf" "D:\doc\*.pdf" /s /e /y /d  >>"G:\pub\baklog\%date%.txt"

Echo --- %date% %time%  复制备份结束 ----                  >>"G:\pub\baklog\%date%.txt"

Echo --- %date% %time%  删除临时文件开始 ----              >>"G:\pub\baklog\%date%.txt"
c:
cd "C:\Documents and Settings\Administrator.SERVER242\Local Settings\Temporary Internet Files"
del *.* /s/q/a

d:
cd d:\temp
del *.* /s/q/a

Echo --- %date% %time%  删除临时文件结束 ----              >>"G:\pub\baklog\%date%.txt"
Echo --- 立即重启服务器 ----
shutdown /r /t 0


这天不上班,只有一个文件被更新了,日志里只有一行数据,你也一起参考下吧。
生成的日志文件:
---2014-02-23 星期日  5:00:00.38 开始复制备份 ----                    
---  5:00:00.38 复制 WORD 文件 ---                        
F:\FTP\Anonymous\2014\申报书.doc
复制了 1 个文件
---  5:02:55.38 复制 EXICEL 文件 ---                       
复制了 0 个文件
---  5:03:52.00 复制 WPS 文件 ---                          
复制了 0 个文件
---  5:04:39.11 复制 JPG图像 文件 ---                     
复制了 0 个文件
---  5:05:49.44 复制 PUB出版物 文件 ---                    
复制了 0 个文件
---  5:06:36.41 复制 TXT 文件 ---                          
复制了 0 个文件
---  5:07:23.37 复制 PSD 文件 ---                          
复制了 0 个文件
---  5:08:09.63 复制 Core 文件 ---                        
复制了 0 个文件
---  5:08:55.77 复制 PDF 文件 ---                          
复制了 0 个文件
---  5:09:42.44 复制 MPG 文件 ---                          
复制了 0 个文件
--- 2014-02-23 星期日  5:10:29.22  复制备份结束 ----                  
--- 2014-02-23 星期日  5:10:29.23  删除临时文件开始 ----              
--- 2014-02-23 星期日  5:10:29.75  删除临时文件结束 ----              

授人于鱼,不如授人于渔
早已停用QQ了
2015-01-08 14:09
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
版主的方法应该很好,只是我目前没有足够能力完成,初学而已,甚至学都不是,边抄边用

我再想了想,用第一种方法应该是不现实的了,扫描太频繁
我用第二种方法,但将第3点调整一下
3、扫描受控文件夹,查找该文件代码所对应文件的最后修改时间与ACCESS数据库进行对比
   因为此时数据库已经修改过,可以对比出结果

改成
先查找文件夹大小的变化,因为文件夹比文件少很多,会减少很多过程
然后将有变化的这部分列成组,深入查找文件代码,一旦查到,路径也就确定
查不到,也就是没有

不知这样是否可行
2015-01-08 16:35
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
文件夹里的文件被修改了,那么这个文件夹的日期也会被修改,这点 我感觉是对的,但无法确定。我平时就利用的这点找文件。

感觉这种的方法可行。

授人于鱼,不如授人于渔
早已停用QQ了
2015-01-08 16:57
快速回复:关于局域服务器文件监控的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.092822 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved