复制同时保留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"键这个监视进程才会终止。