0x00 序
最近硬盘频繁崩溃,让我对我的电脑产生了担忧,于是就准备把上次老师说的备份来实现一下(虽然以前也有备份,但肯定没有现在电脑的资料全面)
主要工具采用的是Rsync(当时了解镜像站时了解到的一个工具,可以实现增量备份)
了解到有一个portableapp可以进行软件备份
通过google参考其他人的方案:
网上大多看到的工具都是:FileSync
FileSync是一个开源文件夹比较和同步工具,支持windows、linux、mac
官网:https://freefilesync.org/
参考资料:
仅供参考的阅读资料(我觉得可能没软用)
存储方案:适用于个人用户的最佳数据备份方案有哪些?
数据备份与灾难恢复:感觉这篇更多的是针对企业的数据备份、容灾
- 全平台的备份指南,让你从此重装不再难 :极度推荐的备份方法,虽然他的本意是面对系统重装的
免费个人数据备份软件介绍:FreeFileSync、Syncthing
DISM++:Dism++ 是一款 Windows 系统管理优化工具,它解决了我们安装、维护系统的一大痛点问题——自定义设置和优化。相当于一个 “一站式” 管理优化工具集。
Dism++,也许是最强的实用工具:汉化官网,gui版本
之前了解的,不过之后感觉没有什么用了,已经决定使用scoop了
Portableapps:便携应用,适合U盘随身携带软件
之前还了解过portableApps,不过感觉其界面UI不行,还是主要面向可移动应用,不过可以自己制作相关的portableApp,在其官网上都给出了教程
但是portableApps意味着就无法使用右键菜单了,也没法命令行快速启动,这是挺蛋疼的。不过这是一种可以方便移植到U盘的解决办法
0x01 用rsync备份
rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。
rsync可以实现scp的远程拷贝(rsync
不支持远程到远程的拷贝,但scp
支持)、cp
的本地拷贝、rm
删除和ls -l
显示文件列表等功能。但需要注意的是,rsync的最终目的或者说其原始目的是实现两端主机的文件同步,因此实现的scp/cp/rm等功能仅仅只是同步的辅助手段,且rsync实现这些功能的方式和这些命令是不一样的。事实上,rsync有一套自己的算法,其算法原理以及rsync对算法实现的机制可能比想象中要复杂一些。
因此我们来介绍一波rsync
参考:
下面介绍几条常用的命令
|
|
其实这命令跟ssh的转发挺像的,都是固定一个地方到另一个地方
- 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:
rsync -a /data /backup
- 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:
rsync -avz *.c foo:src
- 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:
rsync -avz foo:src/bar /data
- 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:
rsync -av root@192.168.78.192::www /databack
- 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:
rsync -av /databack root@192.168.78.192::www
- 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:
rsync -v rsync://192.168.78.192/www
具体选项如下:
|
|
比较注意的是这些选项:-e
、-v
、-r
、 -R
、-p
-aqzrtopg
rsync可以依靠rsync协议或者ssh协议通道来进行备份,本质上是建立起一个通道进行备份
0x02 备份指南
Reference:
- 备份的321原则
- 3:存储 3 份完整文件,一份原件加上两份拷贝。
- 2:将文件起码保持在两种不同的介质上。
- 1:将一份拷贝保存在异地。
然后在做备份时,需要对备份文件的每个目录写个Readme,方便解释如何备份,如何恢复
然后再做个总目录,就完美了
一个备份目录示例如下(摘自参考链接中的少数派,个人正在制作相关的备份目录):
重装指南
├── 目录.md
├── Google Chrome 扩展
│ ├── 如何备份.md
│ ├── Proxy SwitchyOmega.bak
│ └── 扩展列表.md
├── 桌面程序
│ ├── 如何备份.md
│ ├── Bandizip
│ │ └── Bandizip Settings.reg
│ ├── Directory Opus
│ │ └── Opus Config.ocb
│ ├── DnsJumper
│ │ └── DnsJumper.ini
│ ├── Everything
│ │ └── Everything.ini
│ ├── Listary
│ │ └── Preferences.json
│ ├── Snipaste
│ │ └── config.ini
│ └── VSCode
│ ├── 扩展列表.md
│ ├── 键位绑定.json
│ ├── 全局设置.json
│ └── 代码片段
│ ├── c.json
│ ├── ...
│ └── markdown.json
├── Linux 安装指南
│ ├── CentOS.md
│ ├── 软件列表.md
│ └── WSL.md
├── Mac 安装指南
│ ├── 如何备份.md
│ ├── brew bundle.md
│ ├── 应用程序.md
│ └── 手动安装.md
├── 手机应用列表
│ ├── 如何备份.md
│ ├── Android.md
│ └── iPhone.md
├── oh-my-zsh
│ ├── 如何备份.md
│ ├── zshrc-mac.md
│ ├── zshrc-vps.md
│ └── zshrc-wsl.md
└── Windows 安装指南
├── 如何备份.md
├── 第一次配置.md
└── 软件列表.md