Windows 10下同步文件夹备份的一种方案

对于软件工程师来叫高效率、低成本的备份方案太重要了,相信大部分人都有盘毁码完的经历,这里介绍一种方案:

一些常用方案的优缺点

  • 文件拷贝
    优点: 操作简单明了
    缺点:效率低下,由于一些中间编译文件都被拷贝过去了,往往极大的浪费了硬盘空间,而且备份时间可能过长

  • 版本控制
    通过git, performance, CVS, SVN等
    优点:功能强大,可以协同进行开发,完善的版本控制,代码diff, merge等功能
    缺点:

    1. 对于一个人进行的前期或者私密开发,代码还不太想公开
    2. 需要搭建服务器,而且以后恢复数据,还得通过客户端和服务器来恢复数据,还是显得有点麻烦
    3. 还得自己选择要check in的文件,有点麻烦

这里介绍一种简单方案

  • 本方案的优点:

    1. 一键备份,每天都可以进行
    2. 对于编译过程中生成的文件进行忽略
    3. 只同步变化的文件
  • 方案需求

    1. 安装wsl (Windows Subsystem for Linux)
      在Windows Store中查找ubuntu,安装好后,所有的widows的盘符,都被映射到/mnt/下
      比如C盘,就是/mnt/c,这样你就可以在wsl下面访问windows系统的文件了。
    2. 准备一块备份硬盘
      此硬盘仅仅作为备份用,请不要用其他软件更新数据,或者在备份硬盘上工作
      一旦在新的环境中工作,请尽量拷贝到工作电脑的硬盘,再对其进行改动。
      一块大容量的移动硬盘价格一般不到1000元,坏掉一块硬盘,对应数据恢复成本都是上千元,甚至几千元,而且还得再买一块新硬盘把数据恢复拷贝回来,还是额外准备一块备份移动硬盘划算。
      当然备份硬盘最好也是每4·5年换一次。

本方案使用linux rsync命令,先介绍一些rsync的常用用法

  • 把/mnt/d/rsynctest/A sync到/mnt/d/rsynctest/B, A作为B的子目录
rsync -avP /mnt/d/rsynctest/A /mnt/d/rsynctest/B
  • 同上,只不过把A下所有的文件和目录sync到/mnt/d/rsynctest/B
rsync -avP /mnt/d/rsynctest/A/ /mnt/d/rsynctest/B
  • 同上,不要拷贝以.obj, *.ilk为后缀的文件名
vim exclude_list.txt
*.ilk
*.obj
:w
rsync -avP --exclude-from exclude_list.txt /mnt/d/rsynctest/A/ /mnt/d/rsynctest/B
  • 同上,不要拷贝以.obj, *.ilk和folder为release或者debug的所有文件名和目录
vim exclude_list.txt
*.ilk
*.obj
release/*
debug/*
:w
rsync -avP --exclude-from exclude_list.txt /mnt/d/rsynctest/A/ /mnt/rsynctest/B

5.有时候有很复杂的要求,比如:
同上,不要拷贝*.obj, *.ilk, 和不区分大小写的排除debug和release目录,但是目录下的.c/.cpp等源代码文件还需要继续保持

vim filter.txt
+ *.cpp
+ *.asm
+ *.c
+ *.cxx
+ *.h
+ *.hpp
+ *.hxx
+ *.java
+ *.inl
+ *.def
+ *.idl
+ readme.txt
- *.ncb
- *.sbr
- *.ilk
- *.sdf
- *.pdb
- *.ipdb
- *.obj
- *.iobj
- *.bsc
- *.idb
- *.exe
- *.lib
- *.dll
- *.cache
- *.lastbuildstate
- *.tlog
- *.so
- *.suo
- *.[vV][cC].[dD][bB]
- */[dD][eE][bB][uU][gG]/*
- */[rR][eE][lL][eE][aA][sS][eE]/*
- */ipch/*
:w

rsync -avP --filter="merge filter.txt" /mnt/d/rsynctest/A/ /mnt/d/rsynctest/B

最后要说的就是通过最后一种方式来备份,为要备份的folder,创建一个filter.txt,然后就通过一个命令好就备份对应的folder好了,如果大家都是用一个规则,就用一个filter.txt就行了。

下班前半个小时,运行一下命令,一切OK

rsync -avP --filter="merge filter.txt" /mnt/e/ /mnt/h

假设被备份的盘是e盘,备份盘是h盘

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Windows Server 2019提供了多种文件夹同步的解决方案,以确保不同设备之间的文件保持同步更新。其中最常用的方法是使用Windows Server本身的文件夹复制功能。 在Windows Server 2019中,可以通过“文件资源管理器”创建文件夹并设置共享权限,以便其他设备可以访问和同步文件夹。为了实现文件夹同步,可以使用“文件资源管理器”中的“复制到”或“移动到”功能,将文件从一个设备复制到另一个设备。 除此之外,还可以使用Windows Server 2019提供的DFS(分布式文件系统)功能来实现文件夹同步。DFS允许将多个文件服务器组合成一个逻辑文件系统,使得用户可以通过一个统一的路径访问文件夹。当文件在其中一个文件服务器上更新时,DFS会自动将更新同步到其他文件服务器上,从而实现文件夹同步。 另外,Windows Server 2019还支持使用第三方软件进行文件夹同步。例如,可以使用SyncToy、Robocopy等工具,通过设定同步规则和时间间隔,实现文件夹的自动同步。 总之,Windows Server 2019提供了多种方法来实现文件夹同步,包括使用本身的文件夹复制功能、DFS以及第三方软件。根据具体的需求和实际情况,可以选择适合的方法来实现文件夹同步,以确保不同设备之间的文件保持同步更新。 ### 回答2: Windows Server 2019提供了多种方式来实现文件夹同步备份。以下是在Windows Server 2019中实现文件夹同步的一些常用方法: 1. 使用Windows Server的内置功能:Windows Server 2019附带了Windows Server备份功能,可以使用该功能轻松实现文件夹同步备份。通过设置备份计划,可以定期将指定文件夹的内容备份到本地磁盘,网络共享或外部存储设备上。此外,还可以配置增量备份和差异备份来减少备份时间和存储空间的使用。 2. 使用文件同步软件:Windows Server 2019兼容许多第三方文件同步软件,例如SyncBack,Syncovery和GoodSync等。这些软件提供了灵活的选项来定制文件同步过程。您可以设置同步方向,过滤文件类型,排除特定文件或文件夹以及调度同步任务等。通过这些软件,您可以将文件夹同步到本地磁盘,网络共享,云存储或其他远程服务器。 3. 使用DFS复制:Windows Server 2019支持分布式文件系统(DFS),可以使用DFS复制功能来实现文件夹同步。DFS复制利用Windows Server的复制功能和容错能力,将文件夹内容复制到多个服务器上。文件更改会自动同步到其他服务器,以确保文件夹内容的一致性和可用性。 4. 使用云存储服务:Windows Server 2019集成了与云存储服务(如Azure Blob Storage和Amazon S3)的兼容性。您可以将文件夹同步到云存储,以实现跨地理位置的备份和容灾。许多云存储服务提供了数据冗余和自动版本控制等功能,以提高数据的安全性和可靠性。 总之,在Windows Server 2019上实现文件夹同步的方法有很多选择。您可以根据自己的需求和预算选择适合您的方法,并根据具体情况进行设置和调整。无论您选择哪种方法,都应定期监控和测试文件夹同步的有效性,以确保数据的安全性和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值