如何判断一个不断修改的文件是否修改完成?

如何判断一个不断修改的文件是否修改完成?

问一下,有什么比较好的方法检测一个正在备份的数据库备份文件备份完毕,
以便perl调用rar对它进行压缩处理呢?是sql7.0+windwos2000
它提供命令行工具来备份吗?

另外可以考虑用DBI来完成备份.



QUOTE:
原帖由 Lonki 于 2007-9-19 10:29 发表
它提供命令行工具来备份吗?

另外可以考虑用DBI来完成备份.

***
备份任务是由sql作业完成的,perl只是判断它是否备份完毕,然后对它进行压缩就可以了
果然如此... 思考ing
研究一下有没有类似于事件通知啊、回调钩子啊、运行日志啊之类的东西,用它们来触发 Perl。


QUOTE:
原帖由 flw 于 2007-9-19 10:38 发表
研究一下有没有类似于事件通知啊、回调钩子啊、运行日志啊之类的东西,用它们来触发 Perl。

我想通过判断文件的最后修改时间来完成,
也就是每隔十分钟检查这个文件,并返回修改时间,看是否和前一次返回的一样.
但是在win下如何取得文件的修改时间呢?
-M只能取得此文件的修改时间距脚本开始运行时间之间的天数....
貌似LZ的意思从SQL方面不能做任何修改....

单从PERL来说的话, 先确定这个备份文件的生成方式:
1. 先创建为0, SIZE不断增加.
    尝试下while(!open..){}啊, sysopen类似的方法, 看能否造成失败.
    or
    间隔几秒比较2次文件大小是否改变.


2. 一次创建最终结果.
   直接判断是否存在.


QUOTE:
原帖由 Lonki 于 2007-9-19 11:10 发表
貌似LZ的意思从SQL方面不能做任何修改....

单从PERL来说的话, 先确定这个备份文件的生成方式:
1. 先创建为0, SIZE不断增加.
    尝试下while(!open..){}啊, sysopen类似的方法, 看能否造成失败.
    or
...

谢谢,我试试...
是这样,打算写个处理数据库备份的脚本,先用sql作业备份库,再用perl压缩后,通过socket通知本地局域网和远程机房用wget获取压缩库.
这样用perl胶水实现一个远程异地备份.
锁定。修改完后释放就行了。


QUOTE:
原帖由 flw 于 2007-9-19 10:38 发表
研究一下有没有类似于事件通知啊、回调钩子啊、运行日志啊之类的东西,用它们来触发 Perl。

**
问一下.用perl要如何读取应用程序日志?C:\WINNT\system32\config\AppEvent.Evt

怎么用记事本打开来是乱码呢?
是想根据日志来判断是否成功备份...