我有一个关于从命令行备份文件的问题。我们办公室里有一个共享文件夹(存储在其中一台计算机上),其中包含数千个文件和子文件夹。到目前为止,我每天早上都会进行(自动)完整备份,但显然这不是最好的方法,因为大多数文件在很多天里都保持不变。所以,我决定采用不同的方法 - 仅备份昨天创建的文件和修改的文件(昨天,因为我们假设备份在今天早上运行) - 这就是问题所在。
我查看了 forfiles、xcopy 和 Robocopy - 它们似乎都处理文件的“修改日期”,但不处理“创建日期”。因此,例如,如果用户在一周前在其桌面上创建了一个文件,并于昨天将其复制到共享文件夹,则此文件将不会包含在备份中,因为如您所知,复制文件时,它会保留其“修改日期”(在我们的例子中,这是一周前)并将其“创建日期”更改为复制日期。换句话说,我需要备份在共享文件夹中搜索昨天“创建”的文件。第二个问题是:如果用户昨天在其桌面上创建了一个文件并将其移动(而不是复制)到共享文件夹,则“创建日期”和“修改日期”都将保持不变 - 并且此文件也不会包含在备份中。我曾考虑过,要么强制 Windows 在将文件复制/移动到此特定文件夹时以某种方式将文件的创建日期和修改日期更改为当前日期(虽然不太喜欢这个想法),要么告诉 Robocopy 创建该共享文件夹中所有内容的文件/文件夹列表,然后在进行下一次备份之前创建一个新列表并将其与上一个列表进行比较 - 如果有新文件,则将它们添加到备份中。但到目前为止还没有进展。
因此,任何(最好是原生的)解决方案都将不胜感激。我们办公室的所有 PC 都运行 Windows 7 Ultimate x64。
提前谢谢了。
答案1
使用 镜像文件夹时不需要日期robocopy
。您可以使用/MIR
开关。
使用 Robocopy 镜像两个目录的示例命令:
Robocopy \\SourceServer\Share \\DestinationServer\Share /MIR /FFT /Z /W:5
所用开关的说明:
/MIR
指定 Robocopy 应镜像源目录和目标目录。如果在源目录中删除了文件,则在目标目录中也会删除这些文件。/FFT
使用 fat 文件计时而不是 NTFS。这意味着粒度不太精确,因此不依赖于文件计时完全精确到秒。/Z
确保 Robocopy 可以在传输过程中恢复大文件的传输,而不必重新启动。/W:5
将故障之间的等待时间减少到 5 秒,而不是默认的 30 秒。