我有一个基于 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
- 通过以下方式登录 DSM(您的 NAS 的 Web 仪表板)
http:<NAS-IP-ADDRESS>
- 在 DSM 中,打开
Control Panel >> Terminal & SNMP
- 查看
Enable SSH service
通过 SSH 进入你的 NAS
- 获取 SSH 客户端(我使用适用于 Windows 的 Putty SSH;Mac 有内置的 SSH 客户端:终端)
- 找到 NAS 的 LAN IP 地址和 SSH 端口。IP 在 DSM 中可见
Control Panel >> Info Center >> Network tab
。默认情况下,SSH 端口为 22。 - 使用 IP 和端口通过 SSH 连接。使用 DSM 登录凭证。
- 在 SSH 中执行:
sudo -i
以成为 root 用户。您需要再次提供管理员密码。有关详细信息,请参阅此常见问题解答
安装 Entware-ng(opkg 包管理器)
从 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/配置文件反而
重启 NAS,登录 SSH 并运行
sudo -i
以成为 root 用户- 运行
opkg install nano
以获取比 Vim 更简单的文本编辑器。
安装 SpiderOakOne
- 去SpiderOak 网站获取与您的设备匹配的安装包的 URL。我的 NAS 有 64 位处理器,所以我选择了 Linux Debian 64 位,我的
PACKAGE-URL
是https://spideroak.com/getbuild?platform=ubuntu&arch=x86_64
- 运行:
cd /root
打开根目录 - 运行:
wget –output-document=spideroak.install.deb <YOUR-PACKAGE-URL>
下载并保存包 - 一旦你注意到spideroak.安装.deb已保存,按
Ctr+c
返回提示。 - 运行:
dpkg-deb -x spideroak.install.deb SpiderOakONE
将下载的文件解压到/根/SpiderOakONE目录 - 运行:
rm spideroak.install.deb
删除下载的包 - 运行:
mv SpiderOakONE /opt/SpiderOakONE
将程序文件移动到/选择 - 运行:
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 如果您计划备份大量数据,则 SpiderOak 数据文件夹在备份期间会变得很大。 在我的情况下,这会填满系统分区并阻止 NAS 正常工作。 为了解决这个问题,我将数据文件夹移动到存储所有数据的通用分区:/volume1
a. 运行:
mkdir /volume1/SpiderOakONE
创建一个新的数据目录。替换/volume1无论您的常规数据分区是什么。b. 运行:
ln -s /volume1/SpiderOakONE/ /root/.config/SpiderOakONE
创建符号链接,以便访问旧的/根位置将自动重定向到新的
将 NAS 添加到 SpiderOak 账户
- 运行:
ln -s /opt/SpiderOakONE/usr/bin/SpiderOakONE /opt/bin/spideroak
创建符号链接重定向/opt/bin/spideroak到程序的真实路径。这样我们只需输入spideroak
SSH 即可运行该程序,而不必输入完整路径。 - 运行:
spideroak --help
查看可用的选项。如果该命令返回“找不到命令”步骤 20 未按预期工作。您可以改为使用其完整路径运行该程序:/opt/SpiderOakONE/usr/bin/SpiderOakONE –-help
。 - 运行:
spideroak --setup=-
向服务注册您的 NAS。您需要输入 SpiderOak 用户名和密码
基本命令
- 运行:
spideroak --include-dir=<PATH>
将目录添加到备份集。路径示例可能是/volume1/Pictures
。--exclude-dir=<PATH>
可以改用以排除某些目录。如果路径包含空格,则必须将其括在双引号中。 - 要查看当前选择备份的内容,请运行
spideroak --selection
;运行spideroak --reset-selection
以重置。 - 要运行备份作业,请运行:如果您希望生成日志文件
spideroak --batchmode
,可以添加--redirect=<FILE_PATH>
参数。如果您的 SSH 连接中断(例如:您的 PC 处于待机状态),备份将被中断,因此我建议安排备份由 NAS 本身作为 cron 作业执行(请参阅下一节)
设置备份计划
- DSM(Web 控制面板)包括安排定期运行任务的功能
Control Panel >> Task Scheduler
。我们应该能够使用以下命令安排定期备份,spideroak --batchmode
但即使此命令在以 root 身份运行 SSH 时有效,但当任务计划程序尝试以 root 身份运行时,它会失败。我不知道为什么。相反,我通过 SSH 手动编辑了 crontab(计划)。 - 了解如何编辑 NAS 上的 crontab。在我的 NAS 上,适用以下 4 个步骤:
- 系统计划任务保存在文件中/etc/crontab。运行
cp /etc/crontab /etc/crontab.bak
以创建备份副本。如果稍后 crontab 编辑出现问题,请使用以下命令从工作备份中恢复cp /etc/crontab.bak /etc/crontab
- 运行:
nano /etc/crontab
打开计划进行编辑。 Nano 文本编辑器已在步骤 10 中安装。 快速网页搜索将提供有关如何格式化的提示定时任务。例如,要在每晚 10:30 运行备份作业,请将以下行添加到文件:
30 22 * * * root spideroak --batchmode
列必须用制表符分隔,而不是空格。如果命令执行失败,请spideroak
用其完整路径替换(参见步骤 21)。要记录结果,请添加参数--redirect=<FILEPATH>
,Spideroak 将在该路径上写入日志。
- 如果你只想测试一切是否正常,而不必等待漫长的备份完成,可以
--batchmode
用一个更短的过程来代替,例如--selection
检查日志以了解结果 - 最后,检查您的编辑是否在系统重启后继续有效。重启 NAS,登录 SSH,运行
sudo -i
以成为 root,然后nano /etc/crontab
检查计划。
你成功了!
故障排除和提示
如果在 SSH 中,你会收到错误“找不到命令”对于曾经有效的命令,可能是因为/opt/bin或者/opt/sbin不在 PATH 中:
a. 运行
vi /etc/profile
并编辑文件的 PATH 部分(:/opt/bin:opt/sbin
在 PATH 字符串末尾添加)b. 重启 NAS
- 如果你运行 SpiderOak 并获得“新用户设置期间不允许使用命令行参数”,很可能是因为我们在步骤 19.b 中创建的符号链接被破坏了,所以 Spideroak 找不到它的数据文件夹。重新执行 19.b。
- 如果您的安装损坏,您可以使用 将设备重新初始化到服务器
spideroak --setup=-
。这可能需要一段时间,因为设置后程序将立即完成备份(如果需要):占用了我的 NAS 12 小时。 - 我不得不将 NAS 恢复出厂设置一次,因此此设置部分丢失。为了在重置后恢复正常,我必须重新执行步骤 8.b、19.b、20,重新启动,并重新创建 cron 作业(步骤 26 至 31)
- 如果 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,然后重新启动。