Lazy loaded image
分享一下自己在 VPS/NAS/ 本地电脑上是怎么备份数据的 | 我不是咕咕鸽
00 min
Oct 29, 2023
Oct 29, 2023
type
status
date
summary
tags
category
URL
password
slug
icon
今天在整理文件,正好稍微梳理一下自己在不同设备上的备份方法,简单和大家分享下。(有不对的地方或者更好的建议欢迎评论区指出~)
先简单介绍一个 ChatGPT 给出的 321 备份策略(有很多种说法,这个是其中一种):
notion image
321 备份原则是一种数据备份策略,旨在防止数据丢失。具体来说,它建议按照以下方式备份数据:
  • 3 份备份:也就是最少拥有你数据的三个副本。比如说,一个在你的电脑硬盘上(原始数据),剩下的两个在其他不同的存储媒介上。
  • 2 种不同的存储类型:这意味着你不能把所有的备份都放在同一种存储设备上,例如仅使用硬盘做备份。第二份备份应储存在不同的设备或系统上,比如外部硬盘,网络附加存储(NAS),DVD,云存储等。
  • 1 份离线(或离站)备份:这意味着你需要有一份备份是存储在离开你的日常工作区域的区域中的,最好是在完全不同的地理位置。这是为了防止像火灾、洪水这种可能摧毁你现场数据和备份的灾难。
按照 321 备份原则做好数据备份,你就具备了充分保护数据,防止灾难性数据丢失的准备。

服务器上的数据备份

notion image
这个适合那些手头上 VPS 不止一台的小伙伴使用。(最好有一台机器硬盘大一点)
其实之前也和大家已经介绍过了 —— 用 ChatGPT 帮你写一个 VPS 定时自动备份脚本,不少小伙伴总喜欢尝试一些奇奇怪怪的 VPS 商家,这些商家说不定哪天就跑路了,但是架不住人家便宜啊,就是忍不住剁手要买,搭配这个脚本,可以让你少丢失一些数据。(开玩笑,任何 VPS 商家都有丢失数据的可能性,如果你觉得你的数据重要,就一定记得备份)
这边以 Debian 11 系统为例子,如果看咕咕视频比较多的,应该都知道咕咕推荐大家玩 docker 把各个项目都放 /root/data/docker_data 目录下(其实更好的是把配置文件和数据分开放),这个脚本就是备份我们的 docker 项目的,实现的功能如下:
把 A 服务器上的 /root/data/docker_data 目录下的文件每天早上 4 点钟定时备份到 B 服务器的 /root/data/backup_data 文件夹下,
  • 备份文件在 B 服务器上最多保存 3 份,并以时间戳命名。
  • B 服务器的 IP 地址是:150.117.211.107, ssh 端口是 222。(按需修改)
  • 备份的日志保存在 A 服务器的 /root/logs 文件夹下,并且日志包含时间信息
  • 备份和传输的过程可以显示进度条,并且有提示信息,并且进度条最多显示 100%(安装好 pv,临时备份文件放在 /tmp 目录下,上传完成之后可以删掉)
  • 保留文件原有的属性(所有者等信息)
  • 恢复备份的时候,只有 /root/data/docker_data 中的内容而不包括 /root/data/... 完整路径
咕咕这边用的备份服务器是 Hosthatch 家的大盘鸡,当时 65 刀 / 3 年的价格,有 1T 的硬盘,还有无限流量的 BUG(标的 20T,实际不统计流量),还不错的。(他家有过丢数据的情况,所以这个机器咕咕就用来跑下载和备份用了)
notion image
A 服务器创建好文件夹
B 服务器创建好文件夹
A、B 服务器之间创建免密码登录
每天早上 4 点执行备份:
在 crontab 界面中输入:
脚本操作包含敏感操作,如远程登录、文件传输等,在执行前,应确保所有操作、路径和细节均无问题。
可以根据需要修改脚本,比如修改备份文件名、备份路径、备份文件最多保留数目等参数。
咕咕的站点都在搬瓦工Hetzner 上,其中搬瓦工有免费的自动备份,Hetzner 也有收费的自动备份功能,咕咕都用上了,搭配这个脚本,一定程度上减少了数据丢失的风险。

NAS 的数据备份

notion image
咕咕之前用的威联通 TS-453BMini(8G 版本),系统还是比较复杂的(上周挂了小黄鱼打算出掉,有想要接盘的吗)
前俩周淘了一台群晖的 Synology DS920+,发现这个系统才友好嘛。这边就以群晖来举例子。
首先说说 RAID 的事情。
这边直接放出我自己个人的做法:
不组 RAID,不做 SHR,全部四块硬盘用的都是 BASIC。
简单聊一下为啥。
  • SHR 群晖自己的 RAID 模式,适合小白,本质上是根据硬盘数量帮你自动组 RAID1、RAID5 之类的
  • RAID0 读写速度翻倍,享受全部硬盘容量,但是一块坏了,数据就全丢了,风险太高(如果你是纯搞 PT 刷流量可以考虑)
  • RAID1 其实本质就是一块硬盘完全同步另一块硬盘的数据,同步的作用,的确是可以一定程度帮忙恢复数据的(一块硬盘坏了),但是对我来说,重要的数据即使丢了一点也很可惜,还是得备份,而且 RAID1 还损失了一半的硬盘空间。
  • RAID5 也有一定的容错能力,但是据说恢复数据非常非常慢,而且最好等你新硬盘到了再拆坏掉的硬盘,不然期间又坏了一块硬盘,你的数据就都没了。而且恢复期间服务用不了,比较讨厌。
  • JBOD 这个曾经是咕咕在类似 OVH 和 HZ 独立服务器上最想要弄的模式,因为搞 PT 下载,一个盘只有 2T 不够用(qb 挂载的问题只能有一个路径,换另一个路径似乎这个路径下就做不了种了),把 4 块 2T 合在一起,直接变 8T 就很爽了。最近才知道原来这种情况下万一有一块硬盘坏了,数据也是全丢的,那不如直接上 RAID0 了(如果有错误,欢迎评论区指出)
所以咕咕最后的选择是全部 BASIC 模式,类似 Windows 上的 CDEF 盘一样,彼此不干扰,重要的数据自己再备份。
备份方案:
Cloud Sync 挂载 Onedrive 备份重要文件(强烈建议大家可以搞一个 office365 的家庭版)
notion image
再用 USB Copy,备份一份到移动硬盘上。(咕咕用的是很多年以前的 LaCie 1T 版本,但是花了 529 = = 没怎么关注移动硬盘了,欢迎大家在评论区推荐性价比高的)
这样一来,也符合 321 备份原则,可以放心数据安全问题了。
PS:其实不管是群晖还是威联通,本质都是 Linux 系统,也都能算 “服务器”,完全也可以用前面服务器备份的方法来搞,不过既然这边有现成的套件,咕咕就用套件了

本地电脑的数据备份

这边咕咕用的就比较多了,咕咕日常使用的是 MacBook Air,我开通了 iCloud 的 2T 套餐,手上又有家庭版的 1T 的 Onedrive 还有自建的 Nextcloud
这边我都用了 = =
文稿和桌面文件夹用 iCloud 同步,和家里的 MacMini 配合使用起来还不错。
工作的文件大部分都在 Onedrive 里头,这个 Windows 电脑、Mac 电脑都能同步,上下班不用再背电脑回去了。
挂载 Nextcloud 一般放一些个人的资料。Nextcloud 有一个问题就是它没办法和 iCloud 和 Onedrive 一样有个 “释放本地空间” 的功能,这样会比较占本地的空间,没法想下载下载想释放空间释放空间,有点遗憾。
以上。写的有点粗糙,希望能够给大家有所启发。
有问题,或者文中有什么错误的地方也欢迎大家在评论区交流指正。
上一篇
【好玩儿的 Docker 项目】80、90 回忆杀,10 分钟搭建复古中文 DOS 游戏,最多畅玩 1898 款! | 我不是咕咕鸽
下一篇
【好玩儿的 Docker 项目】10 分钟搭建一个高颜值的在线工具箱,用户体验很棒! | 我不是咕咕鸽