随心所欲玩复制 详解robocopy (三)-阿里云开发者社区

开发者社区> 开发与运维> 正文

随心所欲玩复制 详解robocopy (三)

简介:

复制同时保留NTFS权限

在使用Windows NT以上的系统时、或在多用户环境下、或者在服务器上,经常要为文件、文件夹指定用户访问、修改的权限(分区格式需要为NTFS),如下图。但是,使用一般的复制方式并不能保留已有的文件权限设置,这就意味着在文件复制、备份时我们需要重新设置用户权限。不过,使用robocopy可以让我们在复制文件的时候,保留文件属性、权限、所有者,这些都可以随着复制操作一并赋予到目标文件夹中。

需要实现以上要求,使用以下命令:


robocopy D:\Document E:\Project /e /copyall 

 

参数"/copyall"等同于"/copy:DATSOU",表示将所有源文件夹的信息复制到目标文件夹中。

其具体含义为:

D:文件数据,A:文件属性,T:时间信息,S:权限信息,O:所有者信息,U:审核信息。

如果源文件夹的权限被修改,并且需要将其同样更新目标文件夹的时,并不必需要进行重复复制,只需使用:


robocopy D:\Document E:\Project /is /copy:sou 

即可。

如果没有自定义"/copy"的参数,则默认值"/copy:DAT"。

向文件服务器进行集中复制

由于robocopy完全支持文件服务器共享文件夹数据的拷贝,所以我们能够很方便的把相应数据备份到文件服务器上,以免数据丢失。

命令参考:


robocopy D:\Project server_share /e /copyall 

如果我们创建了一个环境变量,如定义"%bak%"为"server_share",那只要输入相应的命令:


robocopy D:\Project %bak% /e /copyall  

即可把源文件夹下的文件全部备份到"server_share"下。

当然,如果"server_bak"空间不够时,只要更换环境变量的值到其他文件夹,如"server_new",上述命令无需更改就可以拷贝到新的文件夹中。

实现定时自动备份

在服务器上(当然不限于服务器),有些数据非常重要,尤其是实时性强的数据,更是需要时时刻刻注意备份,robocopy可以帮我们牢记备份时间,备份目标等。它能够时时刻刻监视需要备份的目标文件夹,当遇到文件夹被修改或者定时器倒数归零,robocopy就会立即开始备份。在用户不进行额外干预的情况下,这种监视文件夹的任务不会终止,而会一直进行。

依然使用上例中的文件夹做示范:


robocopy D:\Project E:\Document /e /copyall /mot:10 /mon:5 

在此例中,整条命令表示复制并监视源文件夹所有信息到目标文件夹。当执行此命令后,会启动命令提示符窗口,一旦时间过了十分钟,并且源文件夹至少有或5处以上的修改,robocopy就会自动启动另一个进程,执行上述备份操作。

在这个实例中,robocopy能监视的有:源文件夹目录结构、文件、文件(夹)名称、大小、最后修改时间、属性和权限等。凡是以上内容有所变动,都会被robocopy视为一次修改。

参数"/mot"用来定义时间,以分钟记,指的是robocopy执行操作最短倒计时时间。参数"/mon"用来定义最少文件修改次数。

在整个监视过程中,robocopy会自动倒计时并记录修改次数,只有同时符合以上两个条件时,robocopy才会开始执行复制任务。每次执行结束后,这两个数据都会被清零,并重新开始监视源文件夹,只有当用户关闭命令提示符窗口或者按下"Ctrl+Break"键这个监视进程才会终止。





     本文转自melvillo 51CTO博客,原文链接:http://blog.51cto.com/marui/298534,如需转载请自行联系原作者






版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章