2010-09-23 33 views
0

我需要备份进程正在写入磁盘的一些大文件。该进程永久运行,偶尔会转储需要通过网络移动的大文件。拥有这个过程本身并不是一种选择,因为这个过程会在用户进行文件转储时锁定用户。在Windows下安全文件备份的脚本

所以,这个运行在Windows机器下,并作为主要的Linux用户,我不能完全肯定如何做到这一点?

linux下我就简单的文件夹中使用cron作业(我知道将匹配输出文件的glob),然后检查lsof,确保文件未被写入,这样我就不会尝试复制部分完整的文件。数据完整性至关重要,所以我通常会在复制之前和之后读取文件。

所以我想我的问题是 - 在Windows下如何做这种东西?我觉得自己从一开始就受到了限制 - 我可以使用python,但我无法模拟lsof,也无法执行任务计划。

我试着看着“处理” - 但它需要在执行时管理privelidges,这也不是一个选项。我无法以管理员身份运行备份过程,因此必须以用户专用权运行。

谢谢..

编辑:我才意识到我可以保持蟒蛇实例上运行,与睡眠,所以任务调度是没有问题的:)

回答

0

对于更换的cron,您可以使用“任务调度程序“,每隔几分钟(或特定时间)启动脚本。

对于这个问题的疑问,我们在这里讨论:How can I determine whether a specific file is open in Windows?

+0

唯一的建议是句柄。其他人是互动的,因此没有帮助。欢呼的任务调度提示 – SomeoneLikeMe 2010-09-23 18:35:24

+0

或者你可以去更“哈克”的方式:检查文件大小在过去60秒左右没有改变....不是很好,但应该做的工作,如果你不有任何其他解决方案。 或要求进程启动其他程序来传输文件。 – 2010-09-23 19:27:06

+0

是的,我已经结束了md5的文件...等待60秒,然后再次做和比较散列 – SomeoneLikeMe 2010-09-23 19:40:35