1.常用命令
(1)复制操作
robocopy D:\Test\Source D:\Test\Target /e /copyall
实现效果:
将Source文件夹下的内容,完整复制到Target下。
参数说明:
1)Target文件夹不存在时,会自动创建;
2)/e表示复制所有子目录包括空文件夹。
3)/copyall等于/copy:datsou,表示将所有源文件夹的信息复制到目标文件夹中,其中D:文件数据,A:文件属性,T:时间信息,S:权限信息,O:所有者信息,U:审核信息。
(2)移动操作
robocopy D:\Test\Source D:\Test\Target /move /e /copyall
实现效果:
将Source文件夹下的内容,移动到Target文件夹下(会删除Source文件夹)。
参数说明:
1)Target文件夹不存在时,会自动创建;
2)/move表示移动。
(3)文件夹监视(指定时间间隔,指定文件夹修改数)
robocopy D:\Test\Source D:\Test\Target /e /copyall /mot:1 /mon:2
实现效果:
1分钟检查一次,当文件夹修改数为2或2处以上时,执行备份操作。
参数说明:
1)Target文件夹不存在时,会自动创建;
2)/mot后接的是时间(分钟),是指Robocopy在指定分钟数后再次执行;
3)/mon后接的是最少文件修改个数,在 n 次更改后再次运行 Robocopy。
4)只有同时符合以上两个条件时,Robocopy才开始执行,执行完成后,这两个数据会自动清零,并重新开始监视文件夹,除非用户关闭命令提示符窗口或按下Ctrl+Break键。
(4)完全同步
robocopy D:\Test\Source D:\Test\Target /mir
实现效果:
同步备份,两个文件夹完全相同,即拷贝时删除在目标文件夹里存在但源文件夹里并没有的文件。
robocopy D:\Test\Source D:\Test\Target /e /copyall /w:10 /z /mt:32 /mir /mot:1 /mon:2 /log:roblog.txt
实现效果:
1分钟检查一次,当文件(夹)修改数为2或2处以上时,执行完全同步操作,即拷贝时删除在目标文件夹里存在但源文件夹里并没有的文件。
参数说明:
1)Target文件夹不存在时,会自动创建;
2)/w:10 设置每次错误时,重试的间隔秒数。
3)/z 开启断点续传;
4)/mt:32 设置并发的线程数。默认值为8。取值为1~128。
5)/mir的作用等同于/purge /e,/purge表示清理目标文件夹有而源文件夹里没有的文件(夹)。通过这个命令,能保证源文件夹和目标文件夹结构与文件完全相同。这在创建镜像备份时,非常有用。
6)/log:roblog.txt 将迁移结果写入roblog.txt日志中。如果已存在,将覆盖现有日志。(文件位于脚本文件同级目录)
7)/log+:roblog.txt 将状态添加到现有日志文件中,即追加日志。
(5)检查源文件夹和目标文件夹的一致性
robocopy D:\Test\Source D:\Test\Target /e /l /ns /njs /njh /ndl /fp /log:roblog.txt
实现效果:
迁移完后,检查目标文件系统是否与源文件系统一致。
参数说明:
1)/e:仅列出目录(包括空目录);
2)/l:不修改或复制文件,仅记录差异。
3)/fp:指在日志中包括文件的完整路径(仅在省略/ndl时有必要)。
4)/ns:指不在日志中包括文件大小。
5)/ndl:指不在日志中包括文件夹。
6)/njs:指不包括作业摘要。
7)/njh:不包括作业头。
8)/log:roblog.txt:将迁移结果写入roblog.txt日志中。如果已存在,将覆盖现有日志。
(6)指定时间段内执行
robocopy D:\Test\Source D:\Test\Target /e /copyall /rh:0130-0530
实现效果:
凌晨1点半时开始备份,5点半暂停。
参数说明:
1)Target文件夹不存在时,会自动创建;
2)RH格式为/RH:hhmm-hhmm,指定Robocopy开始的时间段,在这个时间段外,拷贝会被暂停。时间为24小时格式,4个数字长,从0000到2359,而且两个数字不能相同。
(7)其他用到的命令
1)查找指定名称的进程:
tasklist|findstr "Robocopy"
2)终止指定进程名的进程:
taskkill /f /im “Robocopy.exe”
3)终止指定pid的进程:
taskkill /pid {pid}
强制终止进程:
taskkill /f /pid 19960
2.文件同步备份
(1)开启Nextcloud备份
创建“开启Nextcloud备份.bat”文件,复制以下内容:
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)&&exit
cd /d "%~dp0"
:: 源文件夹
set SOURCE_PATH="D:\Test\Source"
:: 目标文件夹
set TARGET_PATH="D:\Test\Target"
:: 日志文件路径
set LOG_PATH="D:\Test\roblog.txt"
:: 并发备份的线程数,默认值为8。取值为1~128
set THREAD_NUM=32
:: 执行同步检查的时间间隔,单位分钟
set MOT_MINUTE=1
:: 文件(夹)在 MON_NUM 次更改后再次运行 Robocopy
set MON_NUM=2
:: 设置每次错误时,重试的间隔秒数
set ERROR_SECOND=10
robocopy %SOURCE_PATH% %TARGET_PATH% /e /copyall /w:%ERROR_SECOND% /z /mt:%THREAD_NUM% /mir /mot:%MOT_SECOND% /mon:%MON_NUM% /log:%LOG_PATH%
(2)终止Nextcloud备份
创建“终止Nextcloud备份.bat”文件,复制以下内容:
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)&&exit
cd /d "%~dp0"
taskkill /f /im "Robocopy.exe"
升阶版脚本见另一篇博文:
https://blog.csdn.net/yinshengchen/article/details/128662348
Nextcloud私有云搭建问题,可私信联系。
————————————————
版权声明:本文为CSDN博主「fengxingke」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yinshengchen/article/details/128649033
转载请注明出处: