Robocopy是微软推出的可靠文件复制服务,经过测试,比xcopy更加优秀,特别是在复制ACL及文件时间戳方面。
免费同步软件通常在ACL同步这一块比较薄弱,而付费软件复杂操作,我们可以使用robocopy结合任务程序做到日常备份和增量备份。

Tips:
/dcopy:T 可以复制目录时间戳。
如果未加则文件夹时间为复制发生的时间点。如果你希望时间戳和源目录一直,可以再执行一次命令,加/dcopy:T。

/log:日志
测试的时候运行的话 加 /tee命令,这样既能
/log+ 的话持续写入同一个日志。

注:windows7 or windows2008R2中 /dcopy只支持 /dcopy:T
镜像同步 Left >Right
robocopy "c:\abc" "D:\abc" /mir /copyall /dcopy:DAT /mt:8 /z /xa:sht /a-:h /np /ts /w:1 /r:1 /XD "System Volume Information" /XD $RECYCLE.BIN /a-:H /log:H:\Log\Robocopy\RBLog.txt /tee
效果是将c盘的abc文件夹(包括abc本身的一切属性),同步到D盘ABC文件夹内(D盘可以没有abc文件夹,会自动创建,如果已经存在,会覆盖abc的ACL),包括abc内一切文件&文件夹,包括所有的ACL和文件属性,包括所有的文件创建,访问,修改时间属性。以8线程的速度运行。断点续传。并创建时间日志。

增量备份
近期备份修改过的文件
robocopy c:\abc d:\monday /mir /copyall /dcopy:DAT /w:1 /r:1 /maxage:1 /mt:8
效果是将C\abc 内一天内所有修改过的文件备份到Monday文件夹内。
加/z 支持断点续传

/xa:h只能排除隐藏文件,目前没有针对隐藏目录的命令。只能用/XD 目录名来排除隐藏目录。

robocopy c:\ d:\aaa /e /XD “System Volume Information“” /XD $RECYCLE.BIN /a-:H
对于robocopy针对根目录操作,需要去除System Volume Information和$RECYCLE.BIN这两个目录,用/XD参数,/A-:H清除隐藏文件夹属性.


@echo off
title Robocopy每日定期镜像备份脚本
echo.

echo 防呆:请修改此脚本配置并删除此行
pause >nul

:设置当前日期名
set y=%date:~0,4%%date:~5,2%%date:~8,2%

:备份频率 *
set pinlv=daily

:输入备份时间 格式"22:00" *
set time=20:00

:存日志、BAT、邮件插件 *
set weizhi=E:\RCMB%y%

:源路劲 *
set yuan="D:\abc"

:目标路劲 *
set mubiao="E:\abc"

:任务名字 *
set taskname=DailyMBCopy

:设置邮件
set from=abc@yeah.net
set user=abc
set pass=password
set to=12345@qq.com,678910@qq.com
set smtp=smtp.yeah.net

:邮件脚本形参
set a=%%y%%
set b=%%~dp0Log\Robocopy\RBLog%%y%%.txt
set c=%%~dp0Log\Blatmail\Maillog%%y%%.txt
set d=Robocopy镜像复制任务已经完成
set e=%from%
set f=%user%
set g=%pass%
set h=%to%
set i=%smtp%

if exist "%weizhi%" goto abc
md "%weizhi%"
md "%weizhi%\Log"
md "%weizhi%\Log\Robocopy"
md "%weizhi%\Log\Blatmail"

if exist "%mubiao%" goto abc
md "%mubiao%"

:创建复制脚本
echo @echo off >%weizhi%\robocopy_sc.bat
echo title 执行RCMB任务脚本ING >>%weizhi%\robocopy_sc.bat
:当凌晨0点开始到10点前,如果用网上的批处理命名方式,会有个空格。导致无法应用名字。
echo if "%%time:~0,2%%" lss 10 (set y=%%date:~0,4%%%%date:~5,2%%%%date:~8,2%%%%time:~1,1%%%%time:~3,2%%) else (set y=%%date:~0,4%%%%date:~5,2%%%%date:~8,2%%%%time:~0,2%%%%time:~3,2%%)>>%weizhi%\robocopy_sc.bat
:加/tee可以在执行命令的时候查看进度 /np关闭了文件百分比 /xa:sht 排除了系统,隐藏,临时文件 /mt:8启用8线程
echo robocopy %yuan% %mubiao% /mir /copyall /dcopy:DAT /mt:8 /z /xa:sht /a-:h /np /ts /log:%weizhi%\Log\Robocopy\RBLog%%y%%.txt ^>nul >>%weizhi%\robocopy_sc.bat
echo start "" %weizhi%\blatmail\blatmail.bat %a% %b% %c% %d% %e% %f% %g% %h% %i% ^>nul >>%weizhi%\robocopy_sc.bat

:创建一个查看并执行任务的测试脚本
echo @echo off >%weizhi%\RunRobocopySchtaskImmediately.bat
echo title 查看并执行该任务 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo ------------------------------------------------------------------------------------->>%weizhi%\RunRobocopySchtaskImmediately.bat
echo schtasks /query /tn %taskname% /v /fo list>>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo ------------------------------------------------------------------------------------- >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo 任意键立刻执行该任务 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo pause >nul >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo schtasks /run /tn %taskname% >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo 任意键退出 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo pause >nul >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo exit >>%weizhi%\RunRobocopySchtaskImmediately.bat

:复制邮件程序
robocopy "%~dp0blatmail" "%weizhi%\blatmail" /e >nul

:创建任务
schtasks /create /sc %pinlv% /tn %taskname% /tr "%weizhi%\robocopy_sc.bat" /st %time% /rl highest /f
echo 任意键查看该任务
pause >nul
cls
echo.
echo.
echo.
echo -------------------------------------------------------------------------------------
schtasks /query /tn %taskname% /v /fo list
echo -------------------------------------------------------------------------------------
echo "按任意键继续"
pause >nul
goto abcd
:abcd
start "" %weizhi%
start "" %mubiao%
exit

:abc
cls
echo.
echo.
echo.
echo.
echo 目录已经存在 请手动删除后重试
echo 任意键退出
pause >nul
exit


另一个脚本为Robocopy每日定时增量备份。
详情见下载。

最后用Blatmail发送邮件。下载可见。


这是运行脚本后自动创建的目录文件夹。

脚本配置每日定时同步计划任务

效果如下

这是邮件效果:

附件中为Robocopy同步与增量同步脚本,Blatmail文件。

http://down.51cto.com/data/2446578


如果XP需要用到Robocopy软件,可以直接使用GUI版本的Robocopy,安装需要.net 2.0。
https://technet.microsoft.com/zh-tw/library/2006.11.utilityspotlight.aspx

如果希望用户点击后就改变“访问时间”,然后以访问时间来做robocoy的拷贝的话,可以参考如下文章。
“为什么文件属性中的“访问时间”和“修改时间”不一致?“
https://blog.csdn.net/D_R_L_T/article/details/74611126

转载于:https://blog.51cto.com/xifanliang/2111066

Robocopy命令实现文件服务器每日镜像备份/增量备份操作相关推荐

  1. 服务器备份还原命令文件夹,Robocopy命令实现文件服务器镜像备份/增量备份操作(示例代码)...

    Robocopy是微软推出的可靠文件复制服务,经过测试,比xcopy更加优秀,特别是在复制ACL及文件时间戳方面. 免费同步软件通常在ACL同步这一块比较薄弱,而付费软件复杂操作,我们可以使用robo ...

  2. mysql增量备份及恢复解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 前言 操作系统崩溃.电源故障.文件系统崩溃和硬件故障等异常状况都可能导致我们正在使用的数据库出现故障而产生数据库中数据不一致的 ...

  3. MySQL8增量备份_mysql增量备份及恢复解决方案

    前言 操作系统崩溃.电源故障.文件系统崩溃和硬件故障等异常状况都可能导致我们正在使用的数据库出现故障而产生数据库中数据不一致的情况.为了保证数据库使用安全,必须定期备份数据库:数据库备份可以分为:完全 ...

  4. MySQL-日志、完全备份恢复和增量备份恢复

    MySQL-日志.完全备份恢复和增量备份恢复 一.MySQL日志管理 1.MySQL日志文件 错误日志 二进制日志 中继日志 慢查询日志 二.查看日志状态命令 三.备份的重要性 1.造成数据丢失的原因 ...

  5. RMAN备份数据库_制作和更新RMAN增量备份(Incremental Backup)

    增量备份只拷贝从指定的之前的备份以后更改过的数据文件块.使用BACKUP命令来创建增量备份. 增量备份要么是累积增量备份,要么是差异增量备份. 虽然备份的内容相同,BACKUP DATABASE和BA ...

  6. MySQL完全备份和增量备份

    MySQL日治管理.数据库备份与恢复 备份的主要目的是灾难恢复,备份还可以测试应用.回滚数据修改.查询历史数据.审计等.而备份.恢复中,日志起到了很重要的作用 一.日志 MySQL的日志默认保存位置为 ...

  7. 11g使用增量备份来执行跨平台传输表空间减少停机时间(xtts_rman)

    使用跨平台传输表空间来迁移数据所需要的停机时间与被迁移的数据量成正比.然而,当使用增量备份跨平台迁移可以显著减小迁移数据所需要的停机时间. 传统跨平台传输表空间的主要步骤: 1.将源数据库中所被转输的 ...

  8. 通过exp命令对Oracle数据库进行备份操作(提供两种情况的备份:备份本地,备份远程的数据库)

    通过exp命令可以对Oracle数据库进行备份操作,其命令含义是:exp 用户名/密码@数据库所在ip地址:数据库端口号/数据库的service-name file=存储到的位置 exp MISPS/ ...

  9. 什么是全量备份,增量备份,差异备份?

    背景 今天我司服务器工程大牛看我在备份数据,冷不丁提到了差异备份;但是才疏学浅的我却不知何为差异备份,故而以此为引,开始了对全量备份,增量备份,差异备份这三者的研习;经过一番寻觅,最终找到了他们.呵呵 ...

最新文章

  1. 【LeetCode】154. Find Minimum in Rotated Sorted Array II (3 solutions)
  2. 学python可以做什么产品-学了 Python,能用来做什么?实际应用场景有哪些??...
  3. Linux下CMake简明教程(七)对库进行链接
  4. 基于android的视频采集系统的设计与实现,基于Android的视频通话系统的设计与实现.docx...
  5. 如何查看apache,php,mysql的编译参数
  6. Qt工作笔记-WebEngineView调用web站点中的JS脚本(含Vue Cli脚本)
  7. import librosa出错解决方案
  8. java编写一个方法printn_Java语言程序设计 基础篇 原书第10版 ,梁勇著 (第六章)编程练习题...
  9. 图像分割的衡量指标详解
  10. Java的新项目学成在线笔记-day1(一)
  11. 使用第三方类库对html进行解析
  12. 20110609 WindowsLive Writer插件 测试
  13. html模板怎样做seo,SEO如何做分享模板做外链
  14. 百度地图Geolocation的getStatus状态值(百度API获取当前位置[经纬度])
  15. Python——单线程与多线程
  16. 如何做简单的数据分析
  17. Unity 2017+提取模型材质
  18. 吊打大厂:内核级安卓系统优化软件 | 雪豹速清app官网下载
  19. 虚拟化堆叠技术-典型配置H3C IRF
  20. 7-1 树的同构 【已改正】

热门文章

  1. How to make your 100k to 10k (5)
  2. 2008社工新书《黑客社会工程学攻击》
  3. 【译】用JavaScript写一个区块链
  4. 野哥点评了Facebook、Amazon、Google、微软和苹果
  5. rm -rf误删文件的恢复(extundelete工具的使用)
  6. Java通过 p12 建立ssl链接
  7. thinkphp起步
  8. UTF8下的中文截取
  9. Kickstart +ftp+dhcp+tftp实现Linux系统的无人值守安装
  10. 问题六十八:着色模型(shading model)(2)——光照模型(Light model)