备份ad域中文件共享服务器文件带权限复制到NAS

DSM配置

需要将NAS加入ad域

配置共享文件夹权限

需要在共享文件夹的权限中配置域中administrator账户读写权限(建议使用最大权限)

如果备份文件夹需要被user访问,建议在域群组中配置一下domain admins 与 domain users的权限

并且需要在高级权限中启用高级共享权限,先给admin,否则本地admin也没有访问权限,然后同样给之前的administrator、domain admins 与 domain users的权限

文件共享服务器

测试环境

server 2016

通过domain\administrator 拷贝到NAS

使用robocopy命令

确认文件夹权限

全继承

复制命令

注意,以下命令需要在管理员模式的cmd下才能正常执行

尽量用copyall 但是我一直报错

robocopy 【数据源地址】 【目标地址】 /b /copyall /mir

robocopy e:\backup \\192.168.0.63\backup\test /b /copyall /mir

所以我改用以下命令,不会拷贝所有者信息与审核信息.
如果copyall无法使用的话可以使用sec或者/copy:datsou
D:文件数据,A:文件属性,T:时间信息,S:权限信息,O:所有者信息,U:审核信息。

robocopy 【数据源地址】 【目标地址】 /b /sec /mir

robocopy 【数据源地址】 【目标地址】 /b /copy:dats /mir

robocopy e:\backup \\192.168.0.63\backup\test /b /copy:dats /mir

如果有一台中间机,domain共享与nas都有访问权限,则可以直接复制

robocopy \\192.168.0.20\backup \\192.168.0.63\NetBackup\test5 /sec /b /mir

测试

使用copyall 只过去了一个文件夹,权限都过去了,其他文件夹没过去

使用sec

成功,并且保持继承


拷贝回去,权限正常,但是会多一个未知用户的权限,
如果双向都用/copy:dats就不会有此问题

再将这个返回服务器的再拷贝回nas,未知用户还在,但是在nas内看不到

仅同步时间

robocopy 【数据源地址】 【目标地址】 /b /copy:dt /mir

参数详解

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy?source=docs

https://ss64.com/nt/robocopy.html

robocopy <source> <destination> [<file>[ ...]] [<options>]

e.g.

robocopy c:\reports '\\marketing\videos' yearly-report.mov /mt /z

参数 说明
指定来源目录的路径。
指定目标目录的路径。
指定要复制的文件或文件。 支持通配符 (* 或 ?) 。如果未指定此参数, *.* 则用作默认值。
指定要用于 robocopy 命令的选项,包括 复制选择、文件选择选项、重试选项、日志记录和作业选项。

如果在目的端有使用server2016去重功能,当运行 Robocopy /MIR来镜像系统驱动器时,它将尝试从\System Volume Information 中删除“dedup”文件,如果在备份模式 /B 或 /ZB 下运行,它将有权实际删除它们。为避免这种情况,请使用 /XD 排除\System Volume Information

复制选项

/s 复制子目录。 此选项自动排除空目录。
/e 复制子目录。 此选项自动包括空目录。
/lev: 仅复制源目录树的前 n 个级别。
/z 以可重启模式复制文件。 在可重启模式下,如果文件副本中断,Robocopy 可以选取它离开的位置,而不是重新复制整个文件。
/b 在备份模式下复制文件。 备份模式允许 Robocopy (ACL) 替代文件和文件夹权限设置。 这样,就可以复制你可能无权访问的文件,前提是该文件在具有足够权限的帐户下运行。
/zb 以可重启模式复制文件。 如果文件访问被拒绝,则切换到备份模式。
/j 使用无缓冲区 I/O 复制(建议用于大型文件)。
/efsraw 复制 EFS RAW 模式下的所有加密文件。

/copy: 指定要复制的文件属性。 此选项的有效值为:
D – 数据
A – 属性
T – 时间戳
S – NTFS 访问控制列表 (ACL)
O – 所有者信息
U – 审核信息
此选项的默认值为 DAT (数据、属性和时间戳) 。

/dcopy: 指定要在目录中复制的内容。 此选项的有效值为:
D – 数据
A – 属性
T – 时间戳
此选项的默认值为 DA (数据和属性) 。

/sec 复制具有安全性的文件 (等效于 /copy:DATS)。
/copyall 复制所有文件信息 (等效于 /copy:DATSOU)。
/nocopy 不复制任何文件信息 (与 /purge 一起使用生效)。
/secfix 修复所有文件的文件安全性,即使是跳过的文件。
/timfix 修复所有文件的文件时间,即使是跳过的文件。
/purge 删除源中不再存在的目标文件和目录。将此选项与 /e 选项和目标目录结合使用,允许目标目录安全设置不被覆盖。
/mir 镜像目录树(等效于 /E 和 /PURGE)。将此选项与 /e 选项和目标目录结合使用,将覆盖目标目录安全设置。
/mov 移动文件,并在复制文件后从源中删除这些文件。
/move 移动文件和目录,并在复制这些文件和目录后从源中删除它们。

/a+:[RASHCNET] 将指定的属性添加到复制的文件。 此选项的有效值为:
R – 只读
A – 存档
S – 系统
H – 隐藏
C – 压缩
N – 未编制索引的内容
E – 加密
T – 临时

/a-:[RASHCNET] 从复制的文件中删除指定的属性。 此选项的有效值为:
R – 只读
A – 存档
S – 系统
H – 隐藏
C – 压缩
N – 未编制索引的内容
E – 加密
T – 临时

/create 仅创建目录树和长度为零的文件。
/fat 仅使用8.3兼容格式的 FAT 文件名创建目标文件。
/256 关闭超长路径(> 256 字符)支持。
/mon: 监视源,并在检测到多于 n 个更改时再次运行。
/mot: 监视源,如果检测到更改,则在 m 分钟内再次运行。

/MT[:n] 创建具有 n 个线程的多线程副本。n 必须是 1 到 128 之间的整数。n 的默认值为8,建议使用16。为了获得更好的性能,请使用/log选项重定向输出。
/mt 参数不能与 /ipg 和 /efsraw 参数一起使用。

/rh:hhmm-hhmm 指定可以启动新副本的运行时间。
/pf 以每个文件(而不是每个步骤)为基础检查运行的时间。
/ipg:n 指定数据包间间隔(ms),以释放低速线路上的带宽。
/sl 对照目标复制符号链接。
/nodcopy 不复制目录属性,如DOS样式属性、扩展的属性或隐藏的文件属性。
/nooffload 复制文件而不使用Windows复制卸载机制。
/compress 在文件传输期间请求网络压缩(如果适用)。

使用 /secfix 复制选项时,请使用以下附加复制选项之一指定要复制的安全信息类型:
/copyall
/copy:o
/copy:s
/copy:u
/sec

文件选择选项

/a 仅复制具有存档属性的文件。
/m 仅复制具有存档属性的文件并重置存档属性。

/ia:[RASHCNETO] 仅复制具有任意指定属性的文件。 此选项的有效值为:
R – 只读
A – 存档
S – 系统
H – 隐藏
C – 压缩
N – 未编制索引的内容
E – 加密
T – 临时
O – 脱机

/xa:[RASHCNETO] 排除具有任意指定属性的文件。 此选项的有效值为:
R – 只读
A – 存档
S – 系统
H – 隐藏
C – 压缩
N – 未编制索引的内容
E – 加密
T – 临时
O – 脱机

/xf [ …] 排除与指定名称或路径匹配的文件。 支持通配符 (* 和 ?) 。
/xd [ …] 排除与指定名称和路径匹配的目录。
/xc 排除已更改的文件。
/xn 排除较新的文件。
/xo 排除较旧的文件。
/xx 排除额外的文件和目录。
/xl 排除孤立的文件和目录。
/im 包括修改后的文件 (不同更改时间) 。
/is 包括相同的文件。
/it 包括已调整的文件。
/xc 排除具有相同时间戳但不同文件大小的现有文件。
/xn 排除比源目录中的副本更新的现有文件。
/xo 排除比源目录中的副本更旧的现有文件。
/xx 排除存在于目标但不存在于源中额外的文件和目录。排除的额外文件不会从目标中删除。
/xl 排除存在于源但不存在于目标中孤立的文件和目录。排除孤立文件可以防止将任何新文件添加到目标。
/is 包括相同的文件。文件在名称、大小、时间戳和所有属性相同。
/it 包括“已调整”文件。 “已调整”的文件具有相同的名称、大小和时间戳,但属性不同。
/max: 指定最大文件大小(排除大于n字节的文件)。
/min: 指定最小文件大小(排除小于n字节的文件)。
/maxage: 指定最大文件期限(排除超过n天或日期的文件)。
/minage: 指定最小文件期限(不包括比n天或日期新的文件)。
/maxlad: 指定最大的最后访问日期(不包括自n以来未使用的文件)。
/minlad: 指定最小的最后访问日期(不包括自n以来使用的文件) 如果n小于1900,则n指定天数。否则,n指定格式为 YYYYMMDD 的日期。
/xj 排除软链接,通常在默认情况下会包含软链接。
/fft 采用 FAT 文件时间(精度为两秒)。
/dst 补偿一小时的 DST 时间差异。
/xjd 排除目录的软链接。
/xjf 排除文件的软链接。

Tweaked file 已调整文件
已调整文件被定义为:同时存在于源和目标中的文件,具有相同的大小和时间戳,但属性设置不同。

Lonely file 孤立文件
孤立文件被定义为:在源中存在的文件,但在目标中没有。

Extra file 额外文件
额外文件被定义为:在目标存在的文件,但在源中中没有。

重试选项

/r: 指定失败副本的重试次数。n的默认值为1,000,000(一百万次重试)。
/w: 指定重试之间的等待时间,以秒为单位。n的默认值为30(等待时间30秒)。
/reg 将/r:和/w:选项中指定的值保存为注册表中的默认设置。
/tbd 指定系统将等待定义共享名称, (重试错误 67) 。

日志记录选项

/l 指定仅列出文件(而不是复制、删除或时间戳)。
/x 报告所有额外文件,而不仅仅是那些被选中的文件。
/v 生成详细输出,并显示所有跳过的文件。
/ts 在输出中包含源文件时间戳。
/fp 在输出中包含源文件的完整路径名称。
/bytes 以字节为单位打印大小。
/ns 指定不记录文件大小。
/nc 指定不记录文件类。
/nfl 指定不记录文件名。
/ndl 指定不记录目录名。
/np 指定不要显示复制操作的进度(到目前为止复制的文件或目录数)。
/eta 显示复制文件的预计到达时间 (ETA)。
/log: 将状态输出写入到日志文件(覆盖现有的日志文件)。
/log+: 将状态输出写入到日志文件 (将输出追加到现有的日志文件)。
/unicode 将状态输出显示为 Unicode 文本。
/unilog: 将状态输出使用 Unicode 文本写入日志文件,(覆盖现有的日志文件)。
/unilog+: 将状态输出使用 Unicode 文本写入日志文件,(将输出追加到现有的日志文件)。
/tee 将状态输出写入控制台窗口以及日志文件。
/njh 指定没有作业标头。
/njs 指定没有作业摘要。

作业选项

/job: 从指定的作业文件中提取参数。
/save: 将参数保存到指定的作业文件。
/quit 处理命令行后退出 (以查看参数)。
/nosd 未指定源目录。
/nodd 未指定目标目录。
/if 包括指定的文件。

退出 (返回) 代码

0 未复制任何文件。未遇到任何失败。没有不匹配的文件。目标目录中已存在这些文件;因此,跳过了复制操作。
1 已成功复制所有文件。
2 目标目录中存在一些额外文件,这些文件不在源目录中。未复制任何文件。
3(1+2)复制了一些文件。 存在额外文件。 未遇到任何失败。
4 检测到一些不匹配的文件或目录。
5(1+4) 复制了一些文件。某些文件不匹配。未遇到任何失败。
6(2+4) 未复制任何文件,未遇到任何失败。存在额外文件和不匹配的文件。这意味着部分文件已存在于目标目录中。
7(1+2+4)文件已复制,存在一些额外文件和不匹配的文件。
8 多个文件无法被复制。
16 Robocopy 没有复制任何文件。使用错误或来源、目标目录访问权限不足导致。

任何大于 8 的值都表示复制操作期间至少有一个失败。