Sync Over RoboCopy

Scene

  • 基于 Windows 操作系统, NTFS 文件系统之间的文件同步

Solution

  • windows 自带的一个文件复制工具 robocopy
  • 可用于日常的磁盘之间的文件备份/同步,设置个定时任务就很方便了

    1
    robocopy "G:\Elias_Main" "\\192.168.1.5\eliasSave\Elias_Main" /mt:12 /mir /ts /r:3 /w:5 /log+:"X:\Elias_Z_MoveToThis_Log\%date:~0,4%-%date:~5,2%-%date:~8,2%-Backup-Elias_Main.txt"
  • 具体参数可参考以下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    C:\Users\OrekiYuta>robocopy

    -------------------------------------------------------------------------------
    ROBOCOPY :: Windows 的可靠文件复制
    -------------------------------------------------------------------------------

    开始时间: 2021年10月24日 6:26:28
    简单用法:: ROBOCOPY source destination /MIR

    源:: 源目录(驱动器:\路径或\\服务器\共享\路径)。
    目标:: 目标目录(驱动器:\路径或\\服务器\共享\路径)。
    /MIR :: 镜像完整目录树。

    有关用法的详细信息,请运行 ROBOCOPY /?


    **** /MIR 可以删除文件也可以复制文件!

    C:\Users\OrekiYuta>robocopy /?

    -------------------------------------------------------------------------------
    ROBOCOPY :: Windows 的可靠文件复制
    -------------------------------------------------------------------------------

    开始时间: 2021年10月24日 6:26:35
    用法 :: ROBOCOPY source destination [file [file]...] [options]

    源 :: 源目录(驱动器:\路径或\\服务器\共享\路径)。
    目标 :: 目标目录(驱动器:\路径或\\服务器\共享\路径)。
    文件 :: 要复制的文件(名称/通配符: 默认为 "*.*")。

    ::
    :: 复制选项:
    ::
    /S :: 复制子目录,但不复制空的子目录。
    /E :: 复制子目录,包括空的子目录。
    /LEV:n :: 仅复制源目录树的前 n 层。

    /Z :: 在可重新启动模式下复制文件。
    /B :: 在备份模式下复制文件。
    /ZB :: 使用可重新启动模式;如果拒绝访问,请使用备份模式。
    /J :: 复制时使用未缓冲的 I/O (推荐在复制大文件时使用)。
    /EFSRAW :: 在 EFS RAW 模式下复制所有加密的文件。

    /COPY:复制标记:: 要复制的文件内容(默认为 /COPY:DAT)。
    (复制标记: D=数据,A=属性,T=时间戳)。
    (S=安全=NTFS ACL,O=所有者信息,U=审核信息)。


    /SEC :: 复制具有安全性的文件(等同于 /COPY:DATS)。
    /COPYALL :: 复制所有文件信息(等同于 /COPY:DATSOU)。
    /NOCOPY :: 不复制任何文件信息(与 /PURGE 一起使用)。
    /SECFIX :: 修复所有文件的文件安全性,即使是跳过的文件。
    /TIMFIX :: 修复所有文件的文件时间,即使是跳过的文件。

    /PURGE :: 删除源中不再存在的目标文件/目录。
    /MIR :: 镜像目录树(等同于 /E 加 /PURGE)。

    /MOV :: 移动文件(复制后从源中删除)。
    /MOVE :: 移动文件和目录(复制后从源中删除)。

    /A+:[RASHCNET] :: 将给定的属性添加到复制的文件。
    /A-:[RASHCNET] :: 从复制的文件中删除给定的属性。

    /CREATE :: 仅创建目录树和长度为零的文件。
    /FAT :: 仅使用 8.3 FAT 文件名创建目标文件。
    /256 :: 关闭超长路径(> 256 个字符)支持。

    /MON:n :: 监视源;发现多于 n 个更改时再次运行。
    /MOT:m :: 监视源;如果更改,在 m 分钟时间后再次运行。

    /RH:hhmm-hhmm :: 可以启动新的复制时运行的小时数 - 时间。
    /PF :: 基于每个文件(而不是每个步骤)来检查运行小时数。

    /IPG:n :: 程序包间的间距(ms),以释放低速线路上的带宽。

    /SL :: 对照目标复制符号链接。

    /MT[:n] :: 使用 n 个线程进行多线程复制(默认值为 8)。
    n 必须至少为 1,但不得大于 128。
    该选项与 /IPG 和 /EFSRAW 选项不兼容。
    使用 /LOG 选项重定向输出以便获得最佳性能。

    /DCOPY:复制标记:: 要复制的目录内容(默认为 /DCOPY:DA)。
    (复制标记: D=数据,A=属性,T=时间戳)。

    /NODCOPY :: 不复制任何目录信息(默认情况下,执行 /DCOPY:DA)。

    /NOOFFLOAD :: 在不使用 Windows 复制卸载机制的情况下复制文件。

    ::
    :: 文件选择选项:
    ::
    /A :: 仅复制具有存档属性集的文件。
    /M :: 仅复制具有存档属性的文件并重置存档属性。
    /IA:[RASHCNETO] :: 仅包含具有任意给定属性集的文件。
    /XA:[RASHCNETO] :: 排除具有任意给定属性集的文件。

    /XF 文件[文件]... :: 排除与给定名称/路径/通配符匹配的文件。
    /XD 目录[目录]... :: 排除与给定名称/路径匹配的目录。

    /XC :: 排除已更改的文件。
    /XN :: 排除较新的文件。
    /XO :: 排除较旧的文件。
    /XX :: 排除多余的文件和目录。
    /XL :: 排除孤立的文件和目录。
    /IS :: 包含相同文件。
    /IT :: 包含已调整的文件。

    /MAX:n :: 最大的文件大小 - 排除大于 n 字节的文件。
    /MIN:n :: 最小的文件大小 - 排除小于 n 字节的文件。

    /MAXAGE:n :: 最长的文件存在时间 - 排除早于 n 天/日期的文件。
    /MINAGE:n :: 最短的文件存在时间 - 排除晚于 n 天/日期的文件。
    /MAXLAD:n :: 最大的最后访问日期 - 排除自 n 以来未使用的文件。
    /MINLAD:n :: 最小的最后访问日期 - 排除自 n 以来使用的文件。
    (If n < 1900 then n = n days, else n = YYYYMMDD date)。

    /XJ :: 排除接合点和符号链接。(默认情况下通常包括)。

    /FFT :: 假设 FAT 文件时间(2 秒粒度)。
    /DST :: 弥补 1 小时的 DST 时间差。

    /XJD :: 排除目录的接合点和符号链接。
    /XJF :: 排除文件的符号链接。

    /IM :: 包含已修改的文件(更改时间不同)。
    ::
    :: 重试选项:
    ::
    /R:n :: 失败副本的重试次数: 默认为 1 百万。
    /W:n :: 两次重试间的等待时间: 默认为 30 秒。

    /REG :: 将注册表中的 /R:n 和 /W:n 保存为默认设置。

    /TBD :: 等待定义共享名称(重试错误 67)。

    /LFSM :: 在低可用空间模式下运行,启用复制暂停和继续(参见“备注”)。

    /LFSM:n[KMG] :: /LFSM,指定下限大小(以 n [K:kilo、M:mega、G:giga] 字节为单位)。

    ::
    :: 日志记录选项:
    ::
    /L :: 仅列出 - 不复制、添加时间戳或删除任何文件。
    /X :: 报告所有多余的文件,而不只是选中的文件。
    /V :: 生成详细输出,同时显示跳过的文件。
    /TS :: 在输出中包含源文件的时间戳。
    /FP :: 在输出中包含文件的完整路径名称。
    /BYTES :: 以字节打印大小。

    /NS :: 无大小 - 不记录文件大小。
    /NC :: 无类别 - 不记录文件类别。
    /NFL :: 无文件列表 - 不记录文件名。
    /NDL :: 无目录列表 - 不记录目录名称。

    /NP :: 无进度 - 不显示已复制的百分比。
    /ETA :: 显示复制文件的预期到达时间。

    /LOG:文件 :: 将状态输出到日志文件(覆盖现有日志)。
    /LOG+:文件 :: 将状态输出到日志文件(附加到现有日志中)。

    /UNILOG:文件 :: 以 UNICODE 方式将状态输出到日志文件(覆盖现有日志)。
    /UNILOG+:文件 :: 以 UNICODE 方式将状态输出到日志文件(附加到现有日志中)。

    /TEE :: 输出到控制台窗口和日志文件。

    /NJH :: 没有作业标头。
    /NJS :: 没有作业摘要。

    /UNICODE :: 以 UNICODE 方式输出状态。

    ::
    :: 作业选项 :
    ::
    /JOB:作业名称 :: 从命名的作业文件中提取参数。
    /SAVE:作业名称 :: 将参数保存到命名的作业文件
    /QUIT :: 处理命令行后退出(以查看参数)。
    /NOSD :: 未指定源目录。
    /NODD :: 未指定目标目录。
    /IF :: 包含以下文件。

    ::
    :: 备注:
    ::
    以前在卷的根目录上使用 /PURGE 或 /MIR 导致
    robocopy 也对“系统卷信息”目录内的
    文件应用所请求的操作。现在不再是这种情形;如果
    指定了任何一项,则 robocopy 将跳过
    复制会话简要源目录和目标目录中具有该名称的任何文件或目录。

    已修改的文件分类仅在源
    和目标文件系统支持更改时间戳(例如 NTFS)
    以及源和目标文件具有不同的更改时间(否则相同)
    时才适用。默认情况下不复制这些文件;指定 /IM
    将其包含在内。

    使用 /LFSM 请求 robocopy 在“低可用空间模式”下运行。
    在该模式下,每当文件副本导致
    目标卷的可用空间低于可以
    由 LFSM:n[KMG] 形式的标志明确指定的“下限”值时,robocopy 将会暂停。
    如果指定了 /LFSM,但没有显式下限值,则会将下限设置为
    目标卷大小的百分之十。
    低可用空间模式与 /MT、/EFSRAW、/B 和/ZB 不兼容。

Other

< - 僕らは知らない - >