DIY RV 异地备份和媒体服务器

作者:Kyle Rankin

有什么比在房车中安装 Linux 服务器更能为 #vanlife 添加极客气息的方式呢?

人们很容易提出有力的论点,即房车是终极 DIY 项目的游乐场。它结合了您可以在车辆上执行的所有 DIY 项目以及房屋的 DIY 项目。再加上您可能会在轮子上的小房子里度过数天,在高速公路、森林和沙漠中穿梭,您就有了另一类 DIY 项目,可以充分利用这个较小的空间。房车还提供一整套电源选项,从 12V 深循环电池到 110V 岸电到发电机和交流发电机到太阳能,因此有一整类电气 DIY 项目与充分利用您不断变化的电源选项有关。

如果您是极客,拥有房车会引入另一个层次的 DIY 可能性。首先,有所有电子项目来管理电源之间的切换、跟踪能源消耗并保持电池充电。然后是与离家期间访问互联网相关的整个项目类别,包括从移动 WiFi 热点到蜂窝增强网络到漫游卫星互联网(如果您足够聪明,还可以使用智能路由器将您路由到最佳和最便宜的可用选项)。最后,还有几个与房车中的计算机系统相关的项目可能性,包括本地交换机和路由器、将房车变成移动办公室的个人计算机以及媒体中心,以便您可以在旅途中观看电视和电影。

碰巧的是,我最近买了一辆房车——确切地说是一辆 1996 年的 Roadtrek 170。虽然这次购买催生了大量的 DIY 项目清单,但我第一个基于 Linux 的项目专注于媒体中心。在家里,我的媒体中心是一台运行 OSMC 的 Raspberry Pi,它可以很好地访问我 NAS 中的 DVD 和 CD 翻录文件,并在我的客厅电视上播放它们。当我得到房车时,我意识到我们最先需要的事情之一是在旅途中访问所有这些媒体的方法,即使我们身处树林中央。

在本文中,我描述了我为房车构建媒体服务器所采取的所有步骤,该服务器维护我的媒体的最新副本,甚至在停在我的车道上时自动同步。事实证明,在构建媒体服务器的过程中,我也最终获得了一个非常棒的异地备份解决方案。即使您没有房车,您也可以调整这些步骤,将您自己的半异地备份添加到您的汽车中。

""

图 1. “Van Winkle” 介绍(照片来源:Joy Rankin)

物料清单

在我详细介绍此项目的每个步骤之前,我想发布我使用的完整硬件列表。我尝试解释我为什么选择下面列出的硬件,并且根据您的需求,其中一些硬件可能是可选的。例如,如果您的车辆 WiFi 接收良好,您可能不需要我购买的 WiFi 扩展器。如果您只想构建一个异地文件备份解决方案,而无需任何媒体播放,您就不需要购买电视或安装支架。

  • AXESS TV1705-15 15 英寸 LED 高清电视:124.99 美元
  • Mount-It! 锁式房车电视支架:43.99 美元
  • Raspberry Pi 3 B+:45.99 美元
  • Western Digital 8TB MyBook USB3 硬盘驱动器:170 美元
  • 两件装 16GB SanDisk SDHC MicroSD 卡:10.78 美元
  • 1 英尺 HDMI 电缆:7.99 美元
  • Windows 7 Vista XP 媒体中心 MCE PC 遥控器和红外接收器:16.90 美元
  • VONETS VAP11G-300 WiFi 中继器:19.89 美元
  • 总计:440.53 美元
步骤 1:媒体服务器硬件

此过程的第一步是选择媒体服务器本身的硬件和软件。由于硬件将从我的房车“家用电池”供电,因此功耗越低越好。我计划为 Kodi 媒体中心软件使用某种形式的预制发行版(我在 OpenELEC、LibreELEC 和 OSMC 之间犹豫不决),因此我想选择这些发行版良好支持的硬件。由于计算机将执行媒体播放,并且所有这些低功耗设备都具有相对较慢的通用 ARM CPU,因此我的列表中的发行版可以利用硬件加速播放常见媒体编解码器也很重要。我想通过无线方式将我的文件同步到此硬件,因此硬件具有无线网卡也很重要。最后,因为我计划将一个大型外部 USB3 硬盘驱动器连接到计算机以存储我的所有媒体,理想情况下,计算机应该具有更高速的 USB3 端口。

在评估硬件时,我做的第一个重大改变是放弃了 USB3 要求,转而支持硬件加速媒体播放。我评估的大多数具有 USB3 支持的单板计算机(例如我用于 NAS 的 Odroid XU4)都没有保证的媒体硬件加速。不过,当我对这个问题进行研究时,我意识到虽然 USB2 带宽相对较低,但事实证明,社区中的许多人通过 USB2 流式传输大型媒体,并且这对于我的用途来说应该足够好。在解决了媒体播放问题之后,我的另一个担忧是从我的家庭网络同步文件,但在这种情况下,我的 WiFi 连接才是真正的瓶颈。

既然我不再需要担心 USB3 支持,我开始将我的选择限制为 LibreELEC 明确支持的硬件,因为它是我发行版选择中的领跑者。对于我的最终硬件选择,我将其缩小到 Raspberry Pi 3 B+ 或 Odroid C2——Raspberry Pi 系列的竞争对手,它承诺出色的图形性能并具有集成的红外传感器。最终,我选择了 Raspberry Pi 3 B+,原因如下:

  • 集成 WiFi 网卡:虽然我手头有一些 USB WiFi 网卡,但我喜欢最新的 Raspberry Pi 板不仅包含 WiFi 网卡,而且还应该比以前的尝试提供更好的性能这一事实。
  • 更好的整体社区支持:Raspberry Pi 只是一个更受欢迎的平台,所以我更有信心,无论我决定使用哪个媒体中心发行版,它都将在未来继续获得更新。
  • 更适合 DIY 文章:我在编写本文时就考虑到了这个项目。通过选择 Raspberry Pi,我选择了您更有可能拥有或至少更容易获得的硬件。
  • 我可能无论如何都需要一个 USB 红外端口:虽然 Odroid C2 中集成的红外端口很吸引人,但我希望能够隐藏计算机,如果这在安装时效果最好。这意味着我可能无法将其直接安装到电视背面,并且可能无论如何都必须将红外接收器连接到电视。

除了新的 Raspberry Pi 3 B+,我还订购了几张 SD 卡,并选择了一个通用的“MCE 遥控器”,它带有一个 USB 红外接收器。MCE 遥控器专为 Windows 媒体 PC 设计,具有用于媒体服务器的标准按钮布局,并且它们通常在 Kodi 发行版中得到很好的支持,因此所有按钮都可以开箱即用。

另一个关键硬件是用于存储所有文件的 USB 磁盘外壳。我需要在相对较小的包装中提供大量媒体存储,所以我选择了 8TB Western Digital MyBook。您通常可以在当地电子商店找到它们,价格通常比外壳外的相同 8TB 驱动器便宜得多。它们也由 12V 圆形连接器供电,这使得将其交流适配器换成直接直流电源(连接到房车中的 12V 直流适配器之一)变得容易。当然,如果您可以使用更少的存储空间,则应考虑使用 2.5 英寸笔记本电脑硬盘驱动器,因为与 3.5 英寸驱动器相比,它们的功耗通常低得多(并且占用空间更小)。

步骤 2:媒体服务器软件

我知道我想为我的媒体中心使用某种预构建的 Kodi 发行版,因为我已经习惯了家里的那个界面。在家里,我使用 OSMC,但对于房车系统,我在它、OpenELEC 和 LibreELEC 之间进行选择。OSMC 是一个基于 Raspbian 的发行版,它捆绑并为您配置 Kodi。OpenELEC 及其更前沿的分支 LibreELEC 更注重优化,并且不是基于 Raspbian,它们具有更高度定制和轻量级的发行版。最终结果是 OpenELEC 和 LibreELEC 的启动速度更快。

""

图 2. OSMC 在我的房车电视上运行

在家里,我通常让我的媒体服务器一直开着,即使电视没有开,所以 OSMC 启动所需的时间不是问题。在房车中,我想节省电力,所以我计划从电视上为 Raspberry Pi 供电,这样它就可以在电视打开时自动打开。这使得快速启动时间更具吸引力,并且由于 LibreELEC 吹捧对其前沿 Raspberry Pi 的前沿支持,我决定首先尝试一下。

LibreELEC 的启动时间很棒,但不幸的是,这种精简的快速启动时间也意味着幕后没有很多其他工具可用。虽然 LibreELEC 确实可以选择 ssh 进入服务器,但可用的其他软件包非常少。这意味着我无法轻松安装 rsync,这对于此项目至关重要。

最终,我决定选择 OSMC。虽然启动时间比 LibreELEC 长,但它基于 Raspbian 这一事实意味着我可以像对待任何其他 Debian 系统一样对待底层服务器。这使得对其进行自定义以满足我的备份和加密需求变得更加简单。这也意味着我可以在未来为该系统添加额外的功能,而无需购买单独的 Raspberry Pi。

步骤 3:媒体服务器配置

配置媒体服务器本身非常简单。我只是按照说明从 https://osmc.tv 将最新的 OSMC 映像复制到 microSD 卡上,并像任何其他 Raspbian 安装一样从中启动。首次启动时,它会调整其分区大小以填满剩余空间,在第二次启动时,我转到系统设置页面以确保禁用以太网网络,并且 WiFi 网络已连接到我的接入点。这是我后悔我的 WiFi 密码太长的一次,因为我必须通过遥控器上的箭头键和屏幕键盘一次输入一个字符。(提醒自己:下次带一个 USB 键盘到房车。)

接下来,我使用默认用户名:密码 osmc:osmc 通过无线网络 ssh 连接到此系统。这意味着我在登录后的第一步是更改密码


$ passwd

下一步是配置外部 8TB 硬盘驱动器。在大多数情况下,这只是意味着插入它,但考虑到我计划将潜在的敏感文档备份到其中,我想添加一个磁盘加密层,这样如果窃贼来偷走我的硬盘驱动器,他们将无法检索任何数据。首先,我插入了我的硬盘驱动器并检查了 dmesg 输出以确认它出现的设备是什么。因为它​​是唯一连接的 SATA 样式驱动器,所以它应该显示为 /dev/sda,但您仍然需要确保


$ sudo dmesg | grep sd
. . .
[    4.805850] sd 0:0:0:0: [sda] Spinning up disk...
[    4.815562] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   21.442041] sd 0:0:0:0: [sda] Very big device. Trying to
 ↪use READ CAPACITY(16).
[   21.442279] sd 0:0:0:0: [sda] 15628052480 512-byte logical
 ↪blocks: (8.00 TB/7.28 TiB)
[   21.442284] sd 0:0:0:0: [sda] 4096-byte physical blocks
[   21.442599] sd 0:0:0:0: [sda] Write Protect is off
[   21.442604] sd 0:0:0:0: [sda] Mode Sense: 47 00 10 08
[   21.442907] sd 0:0:0:0: [sda] No Caching mode page found
[   21.442911] sd 0:0:0:0: [sda] Assuming drive cache: write
 ↪through
[   21.443478] sd 0:0:0:0: [sda] Very big device. Trying to
 ↪use READ CAPACITY(16).
[   22.786525]  sda: sda1
[   22.787302] sd 0:0:0:0: [sda] Very big device. Trying to
 ↪use READ CAPACITY(16).
[   22.788287] sd 0:0:0:0: [sda] Attached SCSI disk

现在我知道它显示为 /dev/sda,下一步是设置加密。为此,我在我的媒体服务器上安装了 cryptsetup 软件包,然后在外部硬盘驱动器的唯一分区 /dev/sda1 上设置了 LUKS 加密,该分区占用了驱动器上的所有空间


$ sudo apt install cryptsetup
$ sudo cryptsetup --verbose --verify-passphrase
 ↪luksFormat /dev/sda1

此过程会提示您设置解密密码,因此请务必记住它,并可选择将其写下来或存储在您的密码管理器中。接下来,我需要打开设备,以便我可以为其分配名称并格式化它


$ sudo cryptsetup luksOpen /dev/sda1 crypt-sda1
$ sudo mkfs -t ext4 /dev/mapper/crypt-sda1

现在驱动器已准备好安装,但下次系统重新启动时它不会自动安装,因此现在我需要配置它。因为我希望系统能够在每次启动时自动安装此分区,这意味着创建一个只有此系统上的 root 用户才能读取的密钥文件,用随机内容填充它,并使该文件成为解锁加密卷的附加密钥。稍后我可以将系统指向此密钥文件,但首先让我们设置它


$ sudo dd if=/dev/urandom of=/root/keyfile bs=1024 count=4
$ sudo chmod 0400 /root/keyfile
$ sudo cryptsetup luksAddKey /dev/sda1 /root/keyfile

要配置系统在每次启动时自动设置此设备,接下来我需要弄清楚分配给 /dev/sda1 分区的 UUID 是什么。虽然我可以使用 /dev/sda1,但如果有一天我添加了第二个 USB 硬盘驱动器并且它首先抓取了该设备怎么办?我使用 blkid 命令来获取设备的 UUID


sudo blkid /dev/sda1
/dev/sda1: UUID="074051d8-e239-408b-a3ba-ee28301bdee2"
 ↪TYPE="crypto_LUKS" PARTLABEL="My Book"
 ↪PARTUUID="a97a96bf-41a5-4358-9c33-3458ab36ddf4"

现在我有了创建名为 /etc/crypttab 的文件所需的信息。这将为系统提供每次启动时自动设置 LUKS 设备所需的信息。我的文件包含以下内容


$ cat /etc/crypttab
# <target name> <source device>      <key file>    <options>
crypt-sda1 /dev/disk/by-uuid/074051d8-e239-408b-a3ba-ee28301bdee2
 ↪/root/keyfile luks

第一个字段是您要分配给设备的名称(这是在 /dev/mapper 中显示的名称)。下一个字段是原始设备的完整路径。如您所见,我通过其 UUID 指向设备,这意味着使用 /dev/disk/by-uuid/ 中的路径。下一个字段让我指向我创建的密钥文件,最后一个字段让 cryptsetup 知道此磁盘正在使用 LUKS 进行加密。

现在 OSMC 将在启动时自动安装此 USB 设备,而无需我向 /etc/fstab 添加任何内容。默认情况下,它将其安装在 /media/UUID 中,但由于这对于我的其余脚本来说输入起来会很痛苦,因此我在 /mnt 下创建了一个符号链接,该链接更容易输入


$ sudo ln -s /media/f6b0e02c-c08e-45f5-bb28-5a7c360d6f72/
 ↪/mnt/storage

现在我可以随时使用 /mnt/storage 从我的脚本访问此设备。

步骤 4:文件同步

下一步是设置我的文件同步脚本。初始同步在 WiFi 上会花费很长时间,所以我拔掉了驱动器并将其直接连接到我的 NAS 服务器,使用了上面提到的 luksOpen 命令用我的密码打开它,然后将其安装在临时目录 (/mnt/temp 在此示例中) 上。然后我可以为我的备份创建目录并启动初始 rsync 命令


$ sudo mkdir /mnt/temp/audio
$ sudo mkdir /mnt/temp/documents
$ sudo mkdir /mnt/temp/video
$ sudo rsync -avxH /mnt/storage/audio /mnt/temp/audio
$ sudo rsync -avxH /mnt/storage/documents /mnt/temp/documents
$ sudo rsync -avxH /mnt/storage/video /mnt/temp/video

初始 rsync 花费了相当长的时间才能完成,因此在此期间,我设置了其余的同步配置。首先,我在 /etc/hosts 中添加了一个条目,当我的房车在网络上时,该条目指向我的房车,这样我就不必通过 IP 来引用它


192.168.1.50   rv

因为我想以 NAS 上 root 用户的身份 rsync 文件到我的房车媒体服务器上的 root 用户,所以我最终打破了我的一般规则,并允许以 root 用户身份进行 SSH 登录。不过,我通过为默认的“osmc”用户设置 SSH 密钥来弥补这一点,这样我就可以完全禁用密码登录。从我将用于 ssh 进入的 NAS 系统,我以我的普通用户身份键入以下内容


$ ssh-copy-id osmc@rv

此命令将最后一次提示我输入我的 osmc 用户密码,从那时起,我应该能够 ssh 返回房车而无需密码提示。现在我在房车计算机上,现在是为 root 用户创建 SSH 目录的好时机


$ sudo mkdir -p /root/.ssh
$ sudo chmod 0700 /root/.ssh
$ sudo touch /root/.ssh/authorized_keys
$ sudo chmod 0600 /root/.ssh/authorized_keys

由于我的 rsync 脚本将以 root 用户身份运行(因此它可以确保有权访问它正在备份的所有本地文件),因此我也需要复制我的 root 用户的公共 SSH 密钥。如果您的 root 用户还没有 SSH 密钥,只需键入以下命令来生成它们


$ sudo ssh-keygen -t rsa

然后将您的家庭文件服务器上 /root/.ssh/id_rsa.pub 的内容复制并粘贴到您的房车计算机上的 /root/.ssh/authorized_keys 文件中。由于我尚未启用 root 用户(并且 root 用户在 OSMC 中默认禁用且没有密码),因此我必须使用此方法而不是 ssh-copy-id

接下来,我编辑房车服务器上的 /etc/ssh/sshd_config 文件,并确保 PasswordAuthentication 选项被注释掉,并且选项 PermitRootLogin 设置为 yes。然后我使用以下命令重新启动 SSH 守护程序


$ sudo systemctl restart ssh

请注意,如果由于某种原因您没有确认您的用户 SSH 密钥在此步骤之前已正确设置,并且最终被锁定,只需关闭 Raspberry Pi 的电源,取出 microSD 卡并将其插入另一台计算机,然后撤消您对 /etc/ssh/sshd_config 文件的更改。

重新启动 SSH 守护程序后,我现在应该能够成为我的家庭文件服务器上的 root 用户,并直接 ssh 到 root@rv 而无需密码提示。

最后一步是设置一个脚本,将我的所有文件同步到房车服务器,并添加一个 cron 作业,尝试每三个小时保持这些文件同步。由于有时可能需要数小时才能通过无线网络在系统之间同步文件,因此使用锁文件很重要,因此我的脚本利用了 flock 命令来实现此目的。这是我的家庭文件服务器上的 /usr/local/bin/rvsync 脚本


#!/bin/bash

date >>/tmp/rvsync-output
flock -n /tmp/rvsync.lock rsync -avxH /mnt/storage/audio/
 ↪rv:/mnt/storage/audio/ 2>/dev/null 1>>/tmp/rvsync-output
flock -n /tmp/rvsync.lock rsync -avxH /mnt/storage/documents/
 ↪rv:/mnt/storage/documents/ 2>/dev/null 1>>/tmp/rvsync-output
flock -n /tmp/rvsync.lock rsync -avxH /mnt/storage/video/
 ↪rv:/mnt/storage/video/ 2>/dev/null 1>>/tmp/rvsync-output

exit 0

flock 命令在 /tmp/rvsync.lock 处设置一个锁文件。如果此脚本的另一个迭代正在运行,则该命令不会运行;否则,rsync 命令会运行。我将当前日期和所有 rsync 输出添加到 /tmp/rsync-output 文件,这样我就可以跟踪同步的内容,以防我需要排除故障或跟踪正在进行的 rsync 作业。

你们当中的 rsync 老手可能会注意到,我的 rsync 命令中没有包含 --delete 选项,以删除房车上在家中删除的文件。我这样做主要是因为我也将其用作一种异地备份,并且我不想冒着我的家庭 NAS 上的任意外删除命令导致我的备份也被删除的风险。如果存储空间开始成为问题,我计划不时运行手动 rsync 命令,并添加 --delete 选项。

最后,我在我的文件服务器上创建了一个名为 /etc/cron.d/rvsync 的文件,内容如下


0 */3 * * * root /usr/local/bin/rvsync

每三个小时的整点,该脚本将尝试运行。如果房车不可用,脚本将静默失败;否则,它将同步新文件。

初始同步进度完成后,我卸载并断开了 USB 驱动器,并将其重新连接到我在房车中的 Raspberry Pi。然后我测试运行了 rvsync 脚本。虽然它有效,但由于 Raspberry Pi 离房子内的接入点很远,所以速度很慢。显然,您的情况可能有所不同,但在我的情况下,我决定通过添加 WiFi 扩展器来改善我的接收效果。

WiFi 扩展器基本上充当现有接入点和您的计算机之间的桥梁。经过一番研究,我选择了 VONETS VAP11G-300,因为它体积小、相对便宜并且可以通过 USB 供电。我所要做的就是按照设备随附的简单说明进行操作。这包括接通电源、连接到其默认无线网络,然后使用其默认凭据登录到其 Web 界面。在那时,我使用其向导将其配置为桥接器,这包括将其指向我现有的接入点并为其提供一个新的 SSID 以供使用。最后,我返回我的房车媒体服务器并更新其无线配置以指向这个新的接入点。安装 WiFi 扩展器后,我能够将我的文件传输速率提高到之前的三到四倍,因此我认为这是一项值得的投资。更重要的是,我始终可以选择在旅途中重新配置此接入点,以增强房车公园 WiFi 的信号。

步骤 5:安装

现在所有硬件和软件都已设置好,最后一步是物理安装。我的房车足够老,它带有一个专为 CRT 电视设计的橱柜。由于现代 LCD 不需要那么大的空间,我决定将该橱柜重新用作食品储藏室,并将房车 LCD 电视安装到该橱柜旁边的墙壁上。我不希望屏幕伸出来并在收起来时从房车前面看到,所以我测量了橱柜,并确定 15 英寸的屏幕几乎可以完美地安装。我没有选择专为计算机设计的标准 LCD,而是选择了一款专为房车设计的电视,它可以由 12V DC 汽车插座供电,并包含电视调谐器。一些房车公园提供有线电视接口,所以我认为拥有它作为一种选择可能会很有趣。直接直流电源选项也很重要,因为当您从交流电转换为直流电时,您最终会浪费电力(当您使用逆变器将房车的 12V 直流电转换为 110V 交流电后再转换回 12V 直流电时,浪费的电力更多),因此我确保整个系统(包括外部硬盘驱动器)都可以由 12V 直流电供电。对于硬盘驱动器,这意味着在零件抽屉中翻找一个通用的 12V DC 汽车适配器,该适配器恰好具有合适的插头。

我的电视的另一个重要考虑因素是确保它不仅具有 HDMI 输入,而且还具有 USB 端口。我想将 Raspberry Pi 安装到电视背面,虽然这些电视 USB 端口提供的电流不如合适的 USB 电源适配器那么多,但到目前为止,我还没有遇到任何问题。我最终选择了 AXESS TV1705-15 电视。然后我使用一些您可能用来将海报贴在墙上的蓝色胶泥材料将我的 Raspberry Pi 外壳安装到电视背面。我还使用了一些胶泥材料将红外接收器安装在电视的底面。为了帮助管理电缆,我买了一根短的 1 英尺 HDMI 电缆。您可以在图 3 中看到最终结果。

""

图 3. 电视背面

您可能会注意到我没有将巨大的外部 USB 驱动器安装到电视背面。因为我无论如何都必须从旧电视柜内部布线,所以我决定将 USB 驱动器放在该柜子内,只需沿着有线电视和电视电源线布设 USB 电缆即可。

我需要做出的最终重要决定是使用哪个安装支架。我见过其他人房车电视支架的照片和视频,我对它们中的大多数的主要担忧是,由于它们使用了更便宜的安装支架,因此最终使用了某种蹦极绳或其他解决方案来捆绑电视,这样电视在他们开车时就不会晃动。我选择在我的壁挂支架上多花一点钱,以获得一个带有可锁定部分的支架。这样,我可以松开几个翼形螺钉并将电视定位在我想要的位置,然后将其锁定回原位,它就会保持原样。当电视收起来时(图 4),我也可以将其锁定到位,而不必担心它在颠簸时撞到橱柜。

""

图 4. 安装支架折叠起来并准备好旅行

结论

到目前为止,我已经带着这套设备进行了几次旅行,我不得不承认,随时随身携带所有媒体真是太棒了——尤其是我的儿子,他非常赞成手头拥有他所有的卡通片。总之,如果您设置类似的系统,请记住以下几点:

1. 旧房车转换器提供“不干净”的电力。

我对该系统注意到的一件事是,当我在电池上直接运行时,它工作得很好,但是当我插入“岸电”(从我家的延长线连接到 110V 电源)时,电视并不总是能开机。事实证明,旧房车中将 110V 电源转换回 12V 的电子设备不一定提供干净的 12V 电源。虽然简单的电器不在意,但现代电子设备有时会在意。解决方案是将您的转换器升级到现代转换器,或仅在电池供电时使用该系统。

2. 您在家时是否 24x7 全天候开启系统?

您需要回答的重大问题是,当房车在家时,您是否想让房车媒体服务器一直开着。如果您是在家时将房车插上电源的人,那可能会很好。或者,如果您的房车顶部有太阳能电池板,您可能会在知道太阳能电池板正在补充您从家用电池中汲取的电力的情况下,一直开着系统。如果您依靠家用电池本身为服务器供电,您可能会在一两天后耗尽电池电量。

因为我不让我的房车一直供电,这意味着我必须采取更积极的方法来同步我的文件。每隔一两周,我会打开我的房车媒体服务器几个小时,让 cron 作业启动并同步文件。当我知道我要去旅行时,我倾向于提前为房车供电,让冰箱有机会冷却下来,所以我也借此机会同步文件。就目前而言,这对我来说是一个合理的折衷方案,直到我升级我的转换器,然后我可能会考虑让服务器一直开着。如果您要依靠它作为您的主要异地备份,那么这对于您来说可能不够频繁。

到目前为止,我对这套设备感到满意。当我在远离文明的地方露营以至于无法流式传输时,观看电影真是太好了。更重要的是,拥有重要的附加备份文件真是太好了,这些文件足够近,让我可以在需要时访问它们,但位于移动平台上,因此在发生火灾或其他灾难时,我可以立即离开并随身携带我需要的一切。

Kyle Rankin 是 Linux Journal 的技术编辑和专栏作家,也是 Purism 的首席安全官。他是 Linux Hardening in Hostile NetworksDevOps TroubleshootingThe Official Ubuntu Server BookKnoppix HacksKnoppix Pocket ReferenceLinux Multimedia HacksUbuntu Hacks 的作者,也是许多其他 O'Reilly 书籍的撰稿人。Rankin 经常在安全和开源软件方面发表演讲,包括在 BsidesLV、O'Reilly Security Conference、OSCON、SCALE、CactusCon、Linux World Expo 和 Penguicon 上。您可以在 @kylerankin 上关注他。

加载 Disqus 评论