如何监视文件或文件夹的变化,并在发生任何更新时备份该文件的副本?
例如,当创建或更新 c:\orders\orders.xml 时,将副本写入 orders.xml.yyyymmddhhmmss
答案1
为您希望触发此操作的每个事件启用文件系统审核。然后,为每个相关事件 ID 创建一个事件触发器并附加一个脚本(顺便说一句,这太疯狂了)。
或者,您可以像其他人一样定期使用常规备份工具。许多供应商现在使用基于快照的连续备份,保护间隔为 5 分钟,包括 DPM、Commvault、Falconstor 等。结合使用快照和卷影副本,您应该可以获得文件历史记录和数据保护。
答案2
如果您愿意使用托管服务,Crashplan 将实时监视文件并在发生更改时备份:
http://support.code42.com/CrashPlan/Latest/CrashPlan_Glossary#real-time
还为您提供了异地备份的额外好处(假设它们满足相关数据的安全性要求)。
答案3
除了 MDMarras 的 event-id 想法显然有其用处之外,我还喜欢将这些作为计划任务永久运行在后台:
1) 使用 /mon: 和/或 /mot: 选项在文件夹上运行 robocopy /mir,这会将 robocopy 变成一个持续监控过程。我在办公室工作站上执行此操作,以便处理原本不会出现在服务器端备份作业中的内容,并同步安装程序等内容的本地副本,这些副本最好随时可用。我以为这会是一个快速破解方法,直到我用更强大的东西替换它,但它工作得很好,我会坚持使用它。
2) 为了监视文本文件内容的变化,可以使用 get-content 和 -wait 来保持连续监视,也可以使用 -tail 选项(以避免在重新启动作业时解析实体文件)。检测到变化后,可以触发操作。这使得文件重命名等逻辑可以包含时间戳。我用它来监视日志,效果很好。
我使用任务计划程序在启动时启动,然后每 5 分钟启动一次进程,但只允许一个实例。这样可以让作业始终运行,但不会产生多个相同的进程。