使用BAT脚本实现文件异机备份,并且还有文件的时间戳

发布时间 2023-09-14 11:58:27作者: 小小先生好无情

事件起因:

  由于我们单位是创意设计公司,在设计文件的隐私性和保密性上都是有要求的,单位里的办公机的USB口都是禁用的,防治资料泄露;服务器之间还要做实时备份,并且文件的创建时间都是要保证准确性的。但是我们正常拷贝文件夹和文件,会将文件夹的创建时间显示为最新时间。

  举个例子:A服务器上有个文件,创建于2016年10月1日,在2019年9月2日从A服务器备份到B服务器,这个时候B服务器上显示的则是该文件创建于2019年9月2日。

  这个时候文件的创建日期就不对了,如果说后期发生文件泄露并且在维权的过程中需要提供证据证明设计文件的产生时间,那么这个就是一个很大的问题,所以就要求在做文件备份的时候,主备服务器上的设计文件的时间戳要保证一致性。那么要达到这个要求,只能使用命令脚本来满足。

 

具体操作过程:

  在Windows中,有多种方法可实现备份
  1、 copy
  2、 xcopy
  3、 robocopy


  最开始使用的是 xcopy 测试
  命令: xcopy 源文件 目标文件 -- /e /y /d
  测试结果为:最外层文件显示的创建时间任为最新的创建时间而并非是原始时间,但是里层其他的文件都是原始时间。虽然能满足需求,但还是有点差强人意,只能作为备选方案。


  后来使用 robocopy 测试

  命令:robocopy 源文件 目标文件 -- /e /copyall
  测试结果:完成需求;所有的文件的显示时间均为原始时间。

  最终确定的命令参数为:robocopy源文件 目标文件 /copy:DATOU /V /E  /MT:24

  

 

 

注:

具体命令的意思大家可以参考以下文章来自行添加或删减子参数

  copy

  https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/copy

  xcopy

  https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/xcopy

  robocopy
  https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/robocopy

 

后来我在网上有看到其他网友说 xcopy 也有可以达成需求的参数, 可惜我没找到,当然如果大家有谁找到了也可以评论区下面告诉我一声,大家一起进步