数据是电脑中最重要的东西。为了保证数据安全,我们经常会对数据进行备份。之前一直采用将重要数据拷贝至移动硬盘的方式实现备份,实现简单但每次都需要把所有文件拷贝一次,当文件很大时效率较低。

因此,考虑使用 FreeFileSync 软件实现数据备份。该软件使用 C++ 语言编写、免费、开源且支持桌面端全平台。它基于文件的修改时间和大小判断文件是否修改,提供了增量备份、镜像备份和双向备份等多种模式,相比手动拷贝更为方便快捷。

本地备份非常方便,但是当我们需要在两台设备之间迁移数据的时,需要采用 “备份-恢复” 的方式复制文件两次,效率也比较底下。FreeFileSync 除本地备份外,还支持 Google Cloud、SFTP、FTP等多种云端备份方式。因此,在数据迁移时可以使用 FileZilla Server 在目标设备上搭建 FPT 服务器,然后在待迁移设备上使用 FreeFileSync 将数据直接迁移至目标设备。

以下为具体的实现方式。

FreeFileSync 本地文件备份

首先,从 FreeFileSync官网 下载最新版安装程序并安装。

安装完成后,打开软件,在下图的 1 和 2 位置分别设置备份的源路径和目标路径。路径设置即可以点击右侧浏览按钮进行选择,也可以直接将文件夹拖动至输入框。

路径设置完成后,点击上方的 比较 按钮比较两个文件夹中文件的差异。文件比较非常快。比较完成后,下方窗格中将显示两个文件夹下文件的差异,左下方窗格则显示各个子文件夹的大小和占总体的百分比。

窗口三方的蓝色齿轮、红色漏洞和绿色齿轮可以分别设置文件比较方法、过滤器和同步方式。

  1. 蓝色齿轮为文件比较方法,默认设置为 文件时间与大小,能够较好地兼顾准确性和速度。如果需要精确的文件对比,可以修改为 文件内容
  2. 红色漏斗为过滤器,可以设置文件备份时要排除的文件或文件夹,且支持简单的正则表达式。可以在排除中添加形如 \Dropbox\ 的字符串以排除备份源路径下的Dropbox 之类的云同步文件夹的备份。
  3. 绿色齿轮为同步方式,有双向、镜像、更新和自定义四种方式。一般比较推荐镜像同步和更新同步这两种方式,不推荐默认的双向同步
    1. 双向同步会识别两个目录中文件的差别,最终将两个目录中的内容和结构保持相同,即两侧都保证文件是最新的。这是软件的默认设置,但是不推荐该方式。因为最新的文件不一定就是想要的,这种方式容易造成文件混乱和丢失。
    2. 镜像同步会识别两个目录中文件的差别,最终以左侧目录为准进行同步。该方式能够保证同步后目标设备中数据完全与源设备一致。
    3. 更新同步会识别两个目录中文件的差别,最终将左侧目录中的新文件和变动的文件同步。该方式即常说的“增量备份”,即不对未修改的文件进行备份,相比镜像同步效率更高。但是未修改文件的判定依赖于选择的文件比较方法,不一定都能判断正确。
    4. 自定义同步则是根据自己的需求进行同步规则的配置。

全部设置完成后,点击右上角 同步 按钮,在弹出的窗口中点击 开始,即开始数据备份。一定注意要检查好备份的源路径和目标路径,一旦设置错误就可能导致数据丢失。

备份过程中将有一个窗口提示备份进度。窗口中上方窗格显示基于文件大小的备份进度和剩余时间,下方窗格显示基于文件数量的备份进度和剩余时间。未备份部分使用灰色显示,已备份部分使用绿色显示。

备份完成后将显示备份过程,可以通过 日志 窗格查看备份过程中的问题,确认无误后即完成备份。

FreeFileSync + FileZilla Server 实现远程数据迁移

FTP 服务器搭建

要实现远程数据迁移分两步:(1) 在目标设备上利用 FileZilla Server 搭建 FTP 服务器;(2) 在源设备上使用 FreeFileSync 将数据迁移至目标设备。

首先,从 FileZilla Server官网 下载最新的 FileZilla Server 中文版,此处下载的版本为 FileZilla Server 0.9.60.2 中文安装版(因为最新的 FileZilla Server 1.7.2 英文安装版 与之前版本差异较大,使用教程很少)并在目标设备上安装。安装过程中注意设置 Host 为 127.0.0.1 或者 localhost ,其他设置无需修改。

安装完成后,开始 FileZilla Server 配置。打开软件,点击工具栏上的人头按钮打开User窗口,在 General 窗格的中间勾选 启用用户 并输入密码,右侧点击 添加 按钮添加用户,设置用户名后点击确定。

切换至 Shared Folder 窗格,在中间的共享文件夹中添加要贡献的文件夹和权限。切换至 Speed Limit 窗格,将上传和下载速度都设置为 无限制。设置完成后,点击确定关闭窗口。

设置完成后,点击工具栏最左侧的黄色闪电按钮启动 FTP 服务器。如果提示 Server online 则说明服务启动成功。如果提示 Failed to bind the listen socket on port 21 to the following IPs,则可能是默认的 21 端口被占用,点击 菜单栏-编辑-设置-常规设置,将 监听端口 参数调整为 22 或者其他值,再次尝试启动服务即可。

FTP服务器测试和远程数据迁移

可以利用文件资源管理器测试 FTP 服务器是否搭建成功。

首先进行本地测试。在目标设备的文件资源管理器的地址栏中输入 fpt://127.0.0.1 打开本地 FTP 服务器。如果上一步建立服务器时修改了端口,则可以通过 ftp://127.0.0.1:22 的格式指定端口。如果 FTP 服务器建立成功,则可以在输入用户名和密码后打开刚才设置的共享文件夹。

接下来进行远程测试。在目标设备中打开终端,运行 ipconfig ,从中找到目标设备的 IPv4 地址,如 172.xxx.xxx.xxx。在源设备的文件资源管理器地址栏中输入 fpt://ip:port测试是否能够打开共享文件夹,如果可以则说明远程 FTP 服务器建立成功。如果刚才的本地测试可行但远程测试无法打开,则可能是防火墙的问题。

最便捷的解决方式是直接在 Windows安全中心-防火墙与网络保护 中临时关闭防火墙,但是这样不够安全。因此,通过将 FileZilla 加入 Windows 防火墙放行应用中。打开 Windows 安全中心-防火墙与网络保护-允许应用通过防火墙,点击右上角 更改设置 以开启修改,点击右下方 允许其他应用 按钮,在弹出的窗口中选择 FileZilla 运行程序并确定,即将 FileZilla 加入了放行清单。具体可参考文章 【Windows】FileZilla Server 开启防火墙的配置

远程测试通过后,即可以使用 FreeFileSync 进行远程数据迁移了。在源设备上打开 FreeFileSync。在选择备份目标路径时,点击右侧的云朵按钮打开 访问在线存储 窗口并切换至 FTP 窗格。接下来依次设置目标设备IP地址、端口、用户名、密码和服务器上的目录等参数,设置完成后点击确定,即完成迁移目标路径的设置。

其他参数与本地备份完全一致,按需设置即可。设置完成后,点击同步即可开始数据迁移。经测试,FTP备份方式在大文件时可以跑满带宽。

此外,免费的 FreeFileSync 是单线程的,可以捐赠任意金额获取捐赠版软件,以实现并行文件处理。也可以通过 Windows 系统自带的任务计划实现定时备份,具体可查看博客 免费开源的高效备份工具——FreeFileSync

打完收工!


本文参考

  1. 免费开源的高效备份工具——FreeFileSync
  2. FileZilla搭建FTP服务器图解教程
  3. 【Windows】FileZilla Server 开启防火墙的配置

本地数据备份与FTP远程数据迁移的更多相关文章

  1. 分享Sql Server 2008 r2 数据备份,同步服务器数据(二.本地发布,订阅)

    上一篇文章中写到了数据库的本地备份,这一篇主要分享一下关于不同服务器的数据备份,主要是使用sql server中的本地发布,本地订阅功能,在数据库的读写分离中,也会经常性的用到这个功能. 复制-> ...

  2. 分享Sql Server 2008 r2 数据备份,同步服务器数据(一.本地备份)

    最近在部署一个系统,处于数据安全的考虑,因此对相应的数据库服务器定时备份,以及数据同步到备份服务上.之前在另外的一个项目中也做过相应的操作,但是操作都是按照查找到的文章一步一步的操作,碰到一些细节问题 ...

  3. InfluxDB数据备份和恢复方法,支持本地和远程备份

    本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 17 部分: InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 Influ ...

  4. Saiku去掉License验证信息以及数据备份(二十一)

    Saiku去掉License验证信息 终于还是走到了这一步,老早就在说要去掉这个License验证了,一直没做因为忙着别的.但是因为这个License还和可定义的用户数相关,限制了我们的使用,所以这里 ...

  5. python之路--MySQL权限管理 数据备份还原

    一 权限管理 mysql最高管理者是root用户, 这个一般掌握在公司DBA手里, 当你想去对数据库进行一些操作的时候,需要DBA授权给你. 1. 对新用户增删改 1. 创建用户 # 要先use my ...

  6. python--MySQL权限管理 数据备份还原

    一 权限管理 mysql最高管理者是root用户, 这个一般掌握在公司DBA手里, 当你想去对数据库进行一些操作的时候,需要DBA授权给你. 1. 对新用户增删改 1. 创建用户 # 要先use my ...

  7. 数据库05 使用percona软件来进行数据备份

    1.为什么要与用percona来备份 常见的MySQL备份工具 —跨平台性差 —备份时间长.冗余备份.浪费存储空间 mysqldump备份缺点: —效率较低.备份与还原速度慢,锁表(即备份数据库中的一 ...

  8. Docker数据管理-数据卷 data volumes和数据卷容器data volumes containers的使用详解

    此文来源于:https://yq.aliyun.com/ziliao/43471 参考原文件之外,做了些修改. Volume数据卷是Docker的一个重要概念.数据卷是可供一个或多个容器使用的特殊目录 ...

  9. Linux文件系统应用---系统数据备份和迁移(用户角度)

    1   前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的  “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决. 之前的文章对Linux的文 ...

  10. rsync+inotify实现远程数据备份

    一.rsync的基本介绍 1.  什么是rsync Rsync是一款开源的.快速的.多功能的.可以实现增量的本地货远程数据镜像同步备份的优秀工具,Rsync使用与unix,linux,windows等 ...

随机推荐

  1. HDU 3829 Cat VS Dog 猫和狗(二分图)结题报告

    听学长说这道题很ex,但是思路想到的话还是挺简单的. 可能是受上一道题(放置机器人)的启发,也是找互相冲突的点连线. 但是并不是完全一样(废话)放置机器人那道题是找到冲突点连线后直接求最大匹配即可. ...

  2. 基于ASP.NET ZERO,开发SaaS版供应链管理系统

    前言 在园子吸收营养10多年,一直没有贡献,目前园子危机时刻,除了捐款+会员,也鼓起勇气,发篇文助力一下. 2018年下半年,公司决定开发一款SaaS版行业供应链管理系统,经过选型,确定采用ABP(A ...

  3. 【krpano】 ASP点赞插件

    简述 这是一个Asp版krpano点赞案例,运用asp+xml读写.存储数据,结合krpano代码实现的功能:现将案例上传网站供大家学习研究,希望对大家有所帮助. 功能 用户在网页可点赞后显示已点赞数 ...

  4. 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(4) -- 实现DataGrid数据的导入和导出操作

    在我们设计软件的很多地方,都看到需要对表格数据进行导入和导出的操作,主要是方便客户进行快速的数据处理和分享的功能,本篇随笔介绍基于WPF实现DataGrid数据的导入和导出操作. 1.系统界面设计 在 ...

  5. Vue-入门vue,及第一个vue程序

    一.初始Vue 什么是vue Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架.它基于标准 HTML.CSS 和 JavaScript 构建,并提 ...

  6. 一文带你实现云上部署轻量化定制表单Docker

    本文分享自华为云社区 <[华为云云耀云服务器L实例评测|云原生]自定制轻量化表单Docker快速部署云耀云服务器 | 玩转华为云>,作者:计算机魔术师. 华为云的云耀云服务器L实例备受推崇 ...

  7. Django-rest-framework框架——路由组件、认证权限频率

    @ 目录 一 路由Routers 1.1 使用方法 1.2 代码演示 1.2 视图集中附加action的声明 1.3 路由router形成URL的方式 认证权限频率 一 认证Authenticatio ...

  8. snowboy 无法 install

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple snowboy Looking in indexes: https://pypi.tun ...

  9. 使用 Helm 管理应用的一些 Tips

    背景 Helm 是一个 Kubernetes 的包管理工具,有点类似于 Mac 上的 brew,Python 中的 PIP:可以很方便的帮我们直接在 kubernetes 中安装某个应用. 比如我们可 ...

  10. C#学习笔记--逻辑语句(分支和循环)

    逻辑语句 条件分支语句 条件分支语句可以让顺序执行的代码逻辑产生分支,满足对应条件地执行对应代码逻辑. IF语句 //IF语句块 int a=5; if(a>0&&a<15 ...