raspberry pi_将您的旧Raspberry Pi变成自动备份服务器

raspberry pi

如果您是升级到Raspberry Pi 3的人之一,您可能会想知道如何处理旧的,较小的Pi。 除了将其变成闪烁的LED阵列来娱乐您的猫之外,您还可以考虑将其配置为微控制器

就像我们大多数人都无法接受的那样,备份我们的数字生活是我们每个人都不会做的最重要的日常计算。 这是因为在执行备份过程时,我们需要记住要这样做,这需要付出努力,并且需要时间。 这就是为什么最好的备份解决方案是根本不使用的解决方案的原因。 它是您自动化的。

这样的系统始终在后台运行时最好。 这正是Raspberry Pi最擅长的。 您可以全天候整夜离开Pi,永远不会在电费账单上注意到它,并且可以通过在整个家庭网络中运行备份的简单活动来对它进行分配。 您所需要的只是一台Raspberry Pi和一个大硬盘,并且您基本上已经构建了那些烦人的“轻松备份”系统的自定义版本,硬盘公司每隔几年就会推出(您知道吗?在您的网络上,浪费了一个周末,试图进行配置,以便仅在一个隐藏的在线论坛中发现由于固件中的错误而导致广告无效,硬盘驱动器公司承诺将在两年前“尽快”修复该错误。

差异备份

首先,您需要选择一些备份软件来运行备份服务器(您的Pi)和客户端(您的笔记本电脑,台式机等)。

有几种用于自动备份的工具,但是多年来我发现,大多数漂亮的图形化备份解决方案最终都将不再维护,直到它们逐渐消失,迫使我改用其他工具。 一段时间后,这变得很烦人,所以我开始使用rsync ,这是已经存在了数十年的古老的UNIX命令。 这对我非常有用,但是我开始发现自己想要某些文件的版本备份。 rsync对已更改的文件进行备份,但会用新文件覆盖旧版本,因此,如果我的问题不是文件已被删除,而是我弄乱了文件,无法识别,则进行rsync备份文件对我没有多大帮助,因为备份几乎总是以我要替换的文件的坏版本而告终。

然后,我发现了rdiff-backup ,它是一个基于rsync的简单备份工具(它使用librsync ),从而继承了它的可靠性(但是,它自2001年以来就一直存在,因此它没有rsync的悠久历史) 。 Rdiff-backup使用标准的UNIX工具( tarrdiffrsync等)在本地或通过网络执行增量备份,因此即使它消失了,它创建的备份文件仍然有用。 它轻巧并且可以在Linux和FreeBSD上运行,因此即使在最旧的Raspberry Pi上运行也很简单。

服务器安装

您无需任何特殊设置即可将Raspberry Pi变成备份服务器。 假设您的Pi已启动并正在运行,您所需要做的就是从存储库,端口或Extras站点安装rdiff-backup

客户端安装

对于您的客户端(即要由Pi备份的计算机),rdiff-backup可以在Linux,BSD,Windows和Mac OS X上运行,因此您有可能将其用于所有在家中运行的计算机。

大硬盘

即使是64GB的SD卡也无法用于增量备份,因此您需要一个大硬盘才能连接到Pi。 您最了解自己的数据,因此在购买驱动器时,请以此为指导。 对于我的家庭网络,我有一个相对较小的(考虑到我使用的多媒体数据文件的数量)3TB驱动器; 我这样做的原因有很多,但主要是因为我实际上并未备份我拥有的所有数据。 无论如何,我处理的许多数据都存在于其他位置,因此不需要备份,并且音乐和电影收藏之类的东西也不足以备份。 因此,您不必像以前那样跟踪所有最后的千字节。 只是了解您的数据以及对您最重要的事情。

拿到硬盘驱动器后,将其连接到Pi上并对其进行格式化。 严格来说,您不一定非要格式化它,但是如果您要让Linux管理数据,那么您也可以将数据存储在本机文件系统上。 这假定您的备份驱动器是新驱动器或要完全擦除的驱动器。 如果没有,您可以跳过此部分。

要在Linux上格式化驱动器,必须使用root权限。 这在某种程度上取决于您在Pi上运行的发行版(Raspbian,Pidora等),但是通常使用sudo命令来调用它。 无论如何,要使用的工具是分开的 ,并且只要您没有将其他驱动器连接到Pi(除了已从其引导的SD卡),驱动器的位置就是/ dev / sda 。 为了安全起见,我将使用/ dev / sdx只是为了避免潜在的复制粘贴事故。

首先,确认驱动器的位置:



   
   
$ sudo ls -1 / dev / sd *
/ dev / sdX
/ dev / sdX1
/ dev / sdX2

然后在驱动器上分开运行以确认其总大小:


  
   
   
$ sudo parted / dev / sdX unit MB print
Model: Tycoon hard drive Corp. ( scsi )
Disk / dev / sda: 1985442MB
Sector size ( logical / physical ) : 512B / 512B
Partition Table: msdos

查看以Disk开头的行; 这将为您提供驱动器的总大小(以兆字节为单位)。 将其记在某个地方,因为您稍后会需要它。

接下来,在驱动器上创建一个跨整个驱动器的新分区。 仅当您要完全擦除备份驱动器以为所有备份腾出​​空间时, 才执行此操作 。 如果驱动器,你希望永远消失上的任何数据,那么不这样做


  
   
   
$ sudo parted / dev / sdX mklabel gpt
Warning: The existing disk label on / dev / sdX will be destroyed
and all data on this disk will be lost. Do you want to continue ?
Yes / No? Yes
Information: You may need to update / etc / fstab.
$ sudo parted / dev / sdx mkpart primary 1 1985442
Information: You may need to update / etc / fstab.

您的新分区现在已存在,因此请在其中创建一个文件系统。 请注意,对于此命令,您使用分区而不是磁盘位置。 因此,例如,可以使用/ dev / sda1代替/ dev / sda 。 为了获得最佳效果,还请为磁盘提供标签( -L选项),稍后我们将使用该标签自动安装驱动器。


$  sudo mkfs.ext4 -L backupdrive / dev / sdx1 

现在,您的驱动器已经可以用作备用驱动器了。

自动挂载备份驱动器

为您的备份服务器使用Pi的部分原因是,它将始终处于打开状态。 但是,如果确实发生了某些情况(例如断电或意外关机),则您希望自动重新安装备份驱动器,否则任何备份尝试都会失败。

要为驱动器设置自动挂载,请首先为要安装的驱动器创建一个标准位置。 驱动器通常安装在/ media/ run / media之类的位置 ,这很好,但是为简单起见,只需在文件系统的根目录下为它创建一个目录:


$  sudo mkdir / backupdrive 

然后在您选择的文本编辑器中以root权限编辑/ etc / fstab 。 添加此行:


LABEL =backupdrive     / backupdrive    ext4   user,rw  0 0 

最后安装驱动器:


$  sudo mount -a 

初始备份

您执行的第一个备份是最大,最慢的备份,因为您要备份的所有内容都已复制到驱动器中。 由于仅复制新文件(或Blob)或对文件的更改,因此后续备份要小得多且速度更快。

首先,在客户端计算机上安装rdiff-backup (一个要备份到Pi的计算机)。 它可用于主要操作系统。

为确保将来的备份能按预期进行,请使用与增量备份相同的命令和相同的设置来进行第一次备份。 这意味着您不应该将大驱动器与Pi断开连接,然后将其插入客户端,以便更快地运行。 每次都以相同的方式执行每个备份,以便您确切地知道以后如何自动化。

在树莓派上,为要从客户端备份的文件夹创建目录。 假设要备份客户端的主目录,请在备份驱动器上创建该文件夹的镜像:


$  sudo mkdir -p / backupdrive / home / seth 

然后确保同一用户拥有该目录:


$  chown seth:users / backupdrive / home / seth 

假设用户seth在客户端和Pi上都存在。 您不必那样做( rdiff-backup可以以其他用户身份登录到Pi),但是当备份是源镜像时,有时可以更轻松地进行管理。

这也假设您正在备份主目录。 通常这是一个很好的起点(我假设如果您运行的是Linux,则可以免费下载和更换基本系统),但是您可能希望省去不需要备份的大文件。 在主目录中的.excludes文件中列出要从备份中排除的文件和文件夹。 至少,您可以安全地排除垃圾目录:


$  echo " $HOME /.local/.local/share/Trash" && $HOME / .excludes 

来自客户端计算机的基本rdiff-backup命令,其中192.168.3.14是Pi的IP地址:



   
   
$ rdiff-backup --terminal-verbosity 8 --print-statistics \
--exclude-globbing-filelist $HOME / .excludes \
/ home / seth / seth @ 192.168.3.14:: / backupdrive / home / seth /

该命令将启动冗长的rsync进程,在该进程中,发现所有文件都不在备份驱动器上,因此将其从客户端复制到Pi。 如果失败,请检查所涉及的权限; 您的用户(在Pi上)必须能够写入备份驱动器。 另外,您的用户必须能够成功通过SSH远程远程连接到Pi。

自动登录

由于我们的目标是使该过程自动化,因此启动备份的登录过程也必须在没有干预的情况下进行。 使SSH登录自动很容易; 只需使用ssh键登录即可。 可以使用ssh-copy-id一步完成,这应该在您的Pi发行版的存储库中。 要仅为此备份服务器使用特殊密钥,请使用ssh 配置文件指定要使用的密钥。

Cron工作

假设到目前为止一切正常,那么无人看管的备份就不会失败。 为此,请使用与初始备份相同的命令,并将其分配给cronjob。 通常使用命令cronjob -e完成



   
   
0 */ 6 * * * rdiff-backup --exclude-globbing-filelist / home / seth / .excludes \
/ home / seth / seth @ 192.168.3.14:: / backupdrive / seth /

该cronjob每六个小时(按小时计算)运行一次备份命令。 您可以根据需要调整频率。

恢复数据

既然备份已实现自动化,那么您实际上只需要记住一个命令:如何从您如此忠实地进行的备份中恢复文件。

最简单的restore命令就像rsyncscp一样简单:



   
   
$ rdiff-backup --restore-as-of now \
seth @ 192.168.3.14:: / backupdrive / seth / paint / tux.svg \
~ / paint / tux.svg

此命令从备份服务器上将tux.svg的最新版本还原到客户端计算机上的相同路径。 注意,您不必担心用于版本说明的特殊文件路径。 如果要使用最新版本,只需还原丢失或损坏的相同路径,然后让rdiff-backup将请求解析为最新版本。

但是--restore-as-of选项比这更灵活。 也许您需要的文件版本是五天前的:



   
   
$ rdiff-backup --restore-as-of 5D
seth @ 192.168.3.14:: / backupdrive / seth / paint / tux.svg \
~ / paint / tux.svg

还有其他几种还原文件的方法,它们都在rdiff-backup官方文档中列出,但实际上,我发现--restore-as-of选项是最常用的一种。 在不太常见的情况下,您知道文件的最后一个正确版本的确切日期和时间,并且需要非常专门地从备份中提取文件,因此rdiff-backup也会为您处理该情况。 您只需要获取相当笨拙的diff文件名,即可将其与备份数据一起存储在备份驱动器上。

例如:



   
   
$ rdiff-backup 192.168.3.14:: / backupdrive / seth / rdiff-backup-data / increments / \
paint.2016-01-24T06:06:00-07:00.diff.gz $HOME

这将从1月24日上午6:06执行的备份恢复文件绘制。当然,它不会仅将该文件的diff数据放入您的主目录中,而是将其完全重建后的版本。 这就是rdiff-backup的用途。

把它备份

备份很重要,您的旧Pi可以提供帮助。 今天进行设置,您将不会后悔。

翻译自: https://opensource.com/life/16/3/turn-your-old-raspberry-pi-automatic-backup-server

raspberry pi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值