免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3517 | 回复: 5
打印 上一主题 下一主题

[日期时间] 檔案時間差異比較 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2013-04-15 16:29 |显示全部楼层
1. 可以设置cron每一个小时轮询上一次记录的时间戳,看是否有变化。

2. 在linux较新的版本上可以通过inotify主动监控文件变化情况。

论坛徽章:
0
2 [报告]
发表于 2013-04-15 17:18 |显示全部楼层
如果没办法的话,自己写个小程序用stat获取这些文件的时间信息,,,

论坛徽章:
0
3 [报告]
发表于 2013-04-15 22:37 |显示全部楼层
一个简单的模拟的perl例子。。。
  1. #! /usr/bin/perl

  2. use strict;
  3. use warnings;

  4. use constant SLEEP_TIME => 10;

  5. my $dir = ".";
  6. my @files = map { (my $x = $_) =~ s/\n//; $x } `ls $dir`;
  7. my %file_access = map { $_, (stat($_))[9] } @files;

  8. while (1) {
  9.   sleep SLEEP_TIME;

  10.   foreach (@files) {
  11.     my $file = $_;
  12.     my $last_modify = (stat($file))[9];
  13.     if ($file_access{$file} != $last_modify) {
  14.       print "\t", $file, "\n";
  15.       $file_access{$file} = $last_modify;
  16.     }
  17.   }
  18. }

复制代码

论坛徽章:
0
4 [报告]
发表于 2013-04-16 17:02 |显示全部楼层
加个dumper试试,是不是你的系统里面(stat($file))[9]不是最后修改的时间。。。
perldoc -f stat看看相关东西。。。
  1. #! /usr/bin/perl

  2. use strict;
  3. use warnings;
  4. use Data::Dumper;

  5. use constant SLEEP_TIME => 10;

  6. my $dir = ".";
  7. my @files = map { (my $x = $_) =~ s/\n//; $x } `ls $dir`;
  8. my %file_access = map { $_, (stat($_))[9] } @files;

  9. print Dumper(\@files);
  10. print Dumper(\%file_access);
  11. exit;
  12. while (1) {
  13.   sleep SLEEP_TIME;

  14.   foreach (@files) {
  15.     my $file = $_;
  16.     my $last_modify = (stat($file))[9];

  17.     if ($file_access{$file} != $last_modify) {
  18.       print "\t", $file, "\n";
  19.       $file_access{$file} = $last_modify;
  20.     }
  21.   }
  22. }

复制代码

论坛徽章:
0
5 [报告]
发表于 2013-04-16 17:10 |显示全部楼层
这个只是一个示例,代码里面么有考虑删除等情况,一旦删除后文件stat获取的时间值不可知。。。此时hash比较就会有问题,你可以用你熟悉的语言写一个类似版本,这个只是一个例子。。。

论坛徽章:
0
6 [报告]
发表于 2013-04-16 17:52 |显示全部楼层
你的系统是不是不支持stat啊?你可以用C或者其他语言自己实现一下,不是很复杂的功能的,,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP