要在运行 DSM 6 固件的 Synology NAS 上设置 SpiderOak 6

要在运行 DSM 6 固件的 Synology NAS 上设置 SpiderOak 6

我有一个基于 Debian Linux 的 NAS(网络附加存储),来自Synology其中包含电影、音乐、照片等...

NAS 运行DSM 6基于 Intel x64 处理器的最新固件。我想设置自动备份作业以蜘蛛橡树云

问题是信息很少我能找到。SpiderOak 基本上建议通过将 NAS 作为外部驱动器安装在 PC 上来备份 NAS,就像备份 USB 密钥一样。这存在问题,原因如下:

  • 仅当您的 PC 与 NAS 位于同一网络时才有效
  • 数据流自NAS >> 路由器 >> PC >> 路由器 >> 云不必要地堵塞你的局域网和使用你的电脑资源。理想情况下,它只是NAS >> 路由器 >> 云
  • 通常,多台计算机共享一个 NAS;将 NAS 和 PC 数据设置为来自同一设备将使恢复数据时的问题变得过于复杂

如果您成功将任何 NAS 链接到 SpiderOak,请在此处分享您的操作方法。即使是不同的 NAS,我相信人们也会发现它很有用。如果我们收到良好的反馈,我会将此资源提交给 SpiderOak 支持人员

答案1

要在运行 DSM 6 固件的 Synology NAS 上设置 SpiderOak 6

前言

以下步骤在Synology DS216+跑步DSM 6.0.2,但经过小幅修改后可能可以在其他运行 Linux 的 NAS 上运行。使用的 SpiderOak 版本是 6.1.3

我非常依赖这一页这一页作为起点。

需要注意的事项:

  • 这些说明自 2016 年 11 月起生效。

  • 每当指令要求您执行或运行命令时,它们都指的是 SSH(更多信息见下文)。以下所有 SSH 命令都应按以下方式执行用户。我建议在运行每个命令之前尝试了解它的作用。

  • 您需要安装的软件包取决于您的 CPU 架构。您可以通过dpkg --print-architecture在 SSH 中执行来找到您的 CPU 架构。
  • 如果您知道下面第 26 步失败的原因或如何修复它,请分享!

启用 SSH

  1. 通过以下方式登录 DSM(您的 NAS 的 Web 仪表板)http:<NAS-IP-ADDRESS>
  2. 在 DSM 中,打开Control Panel >> Terminal & SNMP
  3. 查看Enable SSH service

通过 SSH 进入你的 NAS

  1. 获取 SSH 客户端(我使用适用于 Windows 的 Putty SSH;Mac 有内置的 SSH 客户端:终端)
  2. 找到 NAS 的 LAN IP 地址和 SSH 端口。IP 在 DSM 中可见Control Panel >> Info Center >> Network tab。默认情况下,SSH 端口为 22。
  3. 使用 IP 和端口通过 SSH 连接。使用 DSM 登录凭证。
  4. 在 SSH 中执行:sudo -i以成为 root 用户。您需要再次提供管理员密码。有关详细信息,请参阅此常见问题解答

安装 Entware-ng(opkg 包管理器)

  1. 从 SSH,按照这些说明安装 opkg 包管理器。a
    . 要确定要安装的正确版本,请运行dpkg --print-architecture。例如,amd64意味着你需要版本x86 64 位

    b. 需要您编辑文件的指令可以使用 Vim 编辑器来完成。例如,要编辑/etc/rc.local,运行vi /etc/rc.local。这是Vim 简介

    c. 对于DSM 6固件,当Entware-ng说明要求您编辑/root/.profile, 编辑/etc/配置文件反而

  2. 重启 NAS,登录 SSH 并运行sudo -i以成为 root 用户

  3. 运行opkg install nano以获取比 Vim 更简单的文本编辑器。

安装 SpiderOakOne

  1. SpiderOak 网站获取与您的设备匹配的安装包的 URL。我的 NAS 有 64 位处理器,所以我选择了 Linux Debian 64 位,我的PACKAGE-URLhttps://spideroak.com/getbuild?platform=ubuntu&arch=x86_64
  2. 运行:cd /root打开根目录
  3. 运行:wget –output-document=spideroak.install.deb <YOUR-PACKAGE-URL>下载并保存包
  4. 一旦你注意到spideroak.安装.deb已保存,按Ctr+c返回提示。
  5. 运行:dpkg-deb -x spideroak.install.deb SpiderOakONE将下载的文件解压到/根/SpiderOakONE目录
  6. 运行:rm spideroak.install.deb删除下载的包
  7. 运行:mv SpiderOakONE /opt/SpiderOakONE将程序文件移动到/选择
  8. 运行:sed -i /opt/SpiderOakONE/usr/bin/SpiderOakONE -e s+/opt/SpiderOakONE+/opt/SpiderOakONE/opt/SpiderOakONE+这将修复 SpiderOak 启动脚本中的路径,使其指向步骤 17 中的正确路径。要手动执行此操作,请打开/opt/SpiderOakONE/usr/bin/SpiderOakONE并替换所有实例/选择/SpiderOakONE在文件中/选择/SpiderOakONE/选择/SpiderOakONE
  9. 如果您计划备份大量数据,则 SpiderOak 数据文件夹在备份期间会变得很大。 在我的情况下,这会填满系统分区并阻止 NAS 正常工作。 为了解决这个问题,我将数据文件夹移动到存储所有数据的通用分区:/volume1

    a. 运行:mkdir /volume1/SpiderOakONE创建一个新的数据目录。替换/volume1无论您的常规数据分区是什么。

    b. 运行:ln -s /volume1/SpiderOakONE/ /root/.config/SpiderOakONE创建符号链接,以便访问旧的/根位置将自动重定向到新的

将 NAS 添加到 SpiderOak 账户

  1. 运行:ln -s /opt/SpiderOakONE/usr/bin/SpiderOakONE /opt/bin/spideroak创建符号链接重定向/opt/bin/spideroak到程序的真实路径。这样我们只需输入spideroakSSH 即可运行该程序,而不必输入完整路径。
  2. 运行:spideroak --help查看可用的选项。如果该命令返回“找不到命令”步骤 20 未按预期工作。您可以改为使用其完整路径运行该程序:/opt/SpiderOakONE/usr/bin/SpiderOakONE –-help
  3. 运行:spideroak --setup=-向服务注册您的 NAS。您需要输入 SpiderOak 用户名和密码

基本命令

  1. 运行:spideroak --include-dir=<PATH>将目录添加到备份集。路径示例可能是/volume1/Pictures--exclude-dir=<PATH>可以改用以排除某些目录。如果路径包含空格,则必须将其括在双引号中。
  2. 要查看当前选择备份的内容,请运行spideroak --selection;运行spideroak --reset-selection以重置。
  3. 要运行备份作业,请运行:如果您希望生成日志文件spideroak --batchmode,可以添加--redirect=<FILE_PATH>参数。如果您的 SSH 连接中断(例如:您的 PC 处于待机状态),备份将被中断,因此我建议安排备份由 NAS 本身作为 cron 作业执行(请参阅下一节)

设置备份计划

  1. DSM(Web 控制面板)包括安排定期运行任务的功能Control Panel >> Task Scheduler。我们应该能够使用以下命令安排定期备份,spideroak --batchmode但即使此命令在以 root 身份运行 SSH 时有效,但当任务计划程序尝试以 root 身份运行时,它会失败。我不知道为什么。相反,我通过 SSH 手动编辑了 crontab(计划)。
  2. 了解如何编辑 NAS 上的 crontab。在我的 NAS 上,适用以下 4 个步骤:
  3. 系统计划任务保存在文件中/etc/crontab。运行cp /etc/crontab /etc/crontab.bak以创建备份副本。如果稍后 crontab 编辑出现问题,请使用以下命令从工作备份中恢复cp /etc/crontab.bak /etc/crontab
  4. 运行:nano /etc/crontab打开计划进行编辑。 Nano 文本编辑器已在步骤 10 中安装。 快速网页搜索将提供有关如何格式化的提示定时任务。例如,要在每晚 10:30 运行备份作业,请将以下行添加到文件:

30 22 * * * root spideroak --batchmode

列必须用制表符分隔,而不是空格。如果命令执行失败,请spideroak用其完整路径替换(参见步骤 21)。要记录结果,请添加参数--redirect=<FILEPATH>,Spideroak 将在该路径上写入日志。

  1. 如果你只想测试一切是否正常,而不必等待漫长的备份完成,可以--batchmode用一个更短的过程来代替,例如 --selection检查日志以了解结果
  2. 最后,检查您的编辑是否在系统重启后继续有效。重启 NAS,登录 SSH,运行sudo -i以成为 root,然后nano /etc/crontab检查计划。

你成功了!

故障排除和提示

  1. 如果在 SSH 中,你会收到错误“找不到命令”对于曾经有效的命令,可能是因为/opt/bin或者/opt/sbin不在 PATH 中:

    a. 运行vi /etc/profile并编辑文件的 PATH 部分(:/opt/bin:opt/sbin在 PATH 字符串末尾添加)

    b. 重启 NAS

  2. 如果你运行 SpiderOak 并获得“新用户设置期间不允许使用命令行参数”,很可能是因为我们在步骤 19.b 中创建的符号链接被破坏了,所以 Spideroak 找不到它的数据文件夹。重新执行 19.b。
  3. 如果您的安装损坏,您可以使用 将设备重新初始化到服务器spideroak --setup=-。这可能需要一段时间,因为设置后程序将立即完成备份(如果需要):占用了我的 NAS 12 小时。
  4. 我不得不将 NAS 恢复出厂设置一次,因此此设置部分丢失。为了在重置后恢复正常,我必须重新执行步骤 8.b、19.b、20,重新启动,并重新创建 cron 作业(步骤 26 至 31)
  5. 如果 SSH 命令失败并出现权限错误,请执行whoami。如果结果没有显示“根”,运行sudo -i以成为 root (您将需要您的 DSM 密码)

答案2

我已经创建了一个docker解决方案:

https://hub.docker.com/r/jandebleser/spideroak/

https://github.com/jandebleser/spideroak

主要问题是,在 Synology 服务器上的 Docker 应用程序中,您无法传递命令行参数。

您必须创建一个包含用户名、密码和设备名称的 config.json 文件。挂载此文件和要备份的文件夹。然后,通过将环境变量 SLEEP 设置为“infinity”,启动容器以不执行任何操作。然后进入终端选项卡,启动 bash 命令并运行

SpiderOakONE --setup=/config.json
SpiderOakONE --include-dir=/backup

对于正常运行,将 SLEEP 变量设置为 0,然后重新启动。

相关内容