实现一个 restic 命令来启动一个 web 服务器来浏览快照。
对于似乎不是备份程序核心职责的事情来说,这似乎很复杂。 这真的需要吗? 用例是什么? 我更喜欢 FUSE (https://github.com/restic/restic/issues/27)。
Windows 没有保险丝。 使用http://golang.org/pkg/net/http/#FileServer拥有一个基本的 Web 服务器是非常少的工作
正是我所想的,代码并不多,而且可能是在 Windows 中浏览快照的唯一方法。
我同意。 在某个时候是 GUI 的时候了,我认为最自然的步骤是嵌入式 Web 服务器,如果需要,它可以将它呈现在 localhost 甚至其他界面上。 每个人都有一个 Web 浏览器,而不必摆弄应用程序。
@rakoo你
关于用户界面的想法:
restic server
启动 HTTP 服务器http://RarOjHogvueHov:egsevtekwucvith@localhost/snapshots
绑定到 localhost 之外的其他东西应该不是不可能的,但真的很难。 也许我们会为第一个版本硬编码 localhost,看看用户是否抱怨。
想法?
这或多或少是我想到的,除了没有用户名/密码:IMO 他们对潜在攻击者提供的价值很小(我们会做普通的 HTTP,所以用户名和密码是清晰可见的)。
我只绑定到 localhost 没问题:看到我们操作的空间,我希望用户有 ssh 访问他们的 VPS,所以我认为期望他们以这种方式隧道访问他们的 repo 是公平的:
backupserver> restic server 5000
clientmachine> ssh -Nf -L 5000:backupserver:5000
clientmachine> open http://localhost:5000/
我意识到这已经很老了,但是我+1。 我也不认为嵌入的用户名/密码对我有帮助,无论如何这都在 VPN 后面,我希望它在系统启动时启动。
@yatesco在系统启动时启动所讨论的 Web 服务器组件的用例是什么? 我想不出一个,你能详细说明一下吗?
嗨@fd0 - 将存储库公开给团队。
相当不寻常的是,我有一堆我不想闲逛的数据,所以使用这个存档作为“长期存储”很棒,但是我需要从团队和 samba 共享中提供对它的访问(例如 # [377] 377)
好的,谢谢解释。
是否可以通过 Samba 暴露 Fuse 安装座? 我无法让它工作,文件夹不可见。 如何让 Fuse 安装座使用“allow_other”?
我在这里概述了需要做的事情: https :
另请参阅问题 #767 以了解保险丝安装选项。
它只是我们需要的查看器吗? 或所有任务的完整图形用户界面? 以下是我为 GUI 设想的功能:
恢复功能:
管理员功能:
使用Electron,我们保留了跨平台/HTML5 GUI,但具有其他功能,例如文件系统访问、exec 命令、打开 ssh 连接、本机模块等。
我不能代表这个项目,但对我来说,恢复功能就足够了。
我主要在 Windows 机器上使用 SSH 连接到服务器,如果出现问题,我想快速插入我的备份驱动器以查看/下载有问题的文件。
嗨,先生们,刚刚开始与 restic 合作,真的很好,谢谢! 我在这个话题上的五十美分。 只是“查看快照”有点没用,恕我直言(可以通过任何方式发布的保险丝安装完成,如 nginx、samba 等),当然应该有用户接下来可以做的一些有用的操作,例如将文件恢复到选定的主机,恢复sql 转储到某个数据库主机,以简单的方式恢复任何静态备份。 主要有两件事:1.数据搜索/分类和2.在数据下做一些事情(例如恢复、删除、共享、分类、比较副本(diff)等)。 为什么不使用 FUSE:它根本不是关于 Windows,而是关于 UX。 拥有一个具有丰富搜索和轻松恢复功能(针对特定数据类型和系统)的备份存储 Web 前端真的很酷。 我想象了十几个对备份存储有意义的用例(高级搜索、远程恢复、备份策略建议、数据屏蔽、PII 保护、粉碎、数据合规性、报告等),其中一些有一个 Web 前端(至少搜索并恢复)会很好! 对于备份,在大多数情况下,主要目的只是恢复某些东西的最新版本,以防数据损坏,尽可能快,这已经足够了,但对于存档等功能来说,必须有一个 Web 前端。 顺便说一句,数据存档是另一个很酷的功能,例如从静态快照中分离某些数据并将其移动到长期存档中,但这是另一个故事,并且与该线程无关)而且是的,如果您决定将来这样做,恕我直言应该在 rest-server 中完成,将核心功能包装在 rest api 中。 后者对于与 3rd 方系统的集成很有意义。
我会推荐一个完整的其他应用程序,它类似于restic-web
用 go 或 nodejs 编写的内容,并且可以通过 react 或 angular 来完成您可以从命令行界面执行的所有操作
restic 可以在 Windows 上使用https://github.com/dokan-dev/dokany/ 之类的东西吗?
我偶尔会使用 cppcryptfs 访问 Windows 下的文件夹,这些文件夹在 Linux 下使用 gocryptfs 加密,它似乎工作得相当好。
你好,
我找到了这篇文章: https :
它说:
现在 WSL 2 包含自己的 Linux 内核,它具有完整的系统调用兼容性。 这引入了一组全新的应用程序,您可以在 WSL 中运行这些应用程序。 一些令人兴奋的例子是 Docker 的 Linux 版本,以及 FUSE!
请考虑到 WSL 需要 Hyper-V 才能工作,但是:
1) Hyper-V 仅适用于某些版本的 Windows。 例如,Windows 10 Pro 支持 Hyper-V,而 Windows 10 Home 不支持。
2) Hyper-V 不能与用户可能已经在使用的任何其他管理程序软件(如 VirtualBox 等)共存。 因此,如果有人已经在使用 VirtualBox(或任何其他管理程序),他们将无法使用 WSL。
总之,我认为 WSL 不应该被每个 Windows 用户视为理所当然。
@aliron19你能引用一个来源吗? 我在我的工作电脑上使用 WSL 来运行 redis,但这是一台 Windows 10 家用电脑,所以没有 Hyper-V,但 WSL 工作得很好。
请参阅https://docs.microsoft.com/en-us/windows/wsl/wsl2-faq#does -wsl-2-use-hyper-v-will-it-be-available-on-windows-10-home
谢谢澄清。 似乎 Hyper V 要求是 WSL 2 的新要求,我以为 aliron 是在谈论 WSL。 另外很高兴知道 Hyper V 将可供 Windows 10 家庭用户使用。
我会说我们应该更喜欢 Webdav 服务器(#485)而不是 HTML 界面。
这也将允许用户轻松地将其作为网络驱动器添加到 Windows 资源管理器中。
如果你有一台带有 nodejs 的服务器(或 unix/linux),你可以很容易地做到这一点:
restic mount backup &
npx http-serve backup
然后就可以浏览http://127.0.0.1:8080
看看你的文件:
完成后,您可以:
CTRL + C # stop npx
fg # bring back restic
CTRL + C # stop restic
我不知道在您挂载存储库时,restic 是否会锁定存储库,或者您是否可以在此期间添加更多备份。
但至少你可以有一个很小的网络界面来浏览你的文件。
@vincent-ogury 我认为这个提议的功能的目的是提供一个用户友好的备份视图,其中restic mount
_isn't_ 可用。
你说的对。 我猜这应该在 Windows 上的 docker 内工作。
网络版本可能适用于其他平台。
它可以简化命令行来显示快照、查看、忘记、开始新的备份......
我想在这个问题上工作。 想法是使用一些基本的 html 模板实现一个 vanilla Go http 服务器。 我们的用例是在 Windows 下为 Restic 提供一些通用的基本接口
这是我的任务范围:
问题
Restic 不提供在 Windows 上浏览备份的便捷方式。
任务
尝试实现内置 Web 服务器的基本概念证明,允许使用浏览器浏览和恢复备份。
例子
执行以下命令将创建两个备份,您将学习如何通过命令行浏览备份。
openssl rand -hex 10 > ~/.restic-password
restic -p ~/.restic-password init --repo /tmp/backup
restic -p ~/.restic-password --repo /tmp/backup 备份 ~
日期> ~/file-with-changes.txt
restic -p ~/.restic-password --repo /tmp/backup 备份 ~
restic -p ~/.restic-password --repo /tmp/backup 快照
存储库 2ad83051 打开成功,密码正确
b8ee7b24 2020-09-11 17:20:17 thorsten-devvm-v3 /root
2张快照
restic -p ~/.restic-password --repo /tmp/backup ls -l 99388d0b
restic -p ~/.restic-password --repo /tmp/backup ls -l --json 99388d0b|jq
restic -p ~/.restic-password --repo /tmp/backup find snmp.json
restic -p ~/.restic-password --repo /tmp/backup restore latest --target /tmp/restore --include "/root/snmp.json"
规格
通过执行类似的操作,网络服务器启动,并且在内部备份是“打开的”。
restic -p ~/.restic-password --repo /tmp/backup webserver 127.0.0.1:3344
将浏览器指向HTTP://127.0.0.1 :3344 我得到存储库中所有快照的列表。 这是相同的数据,restic -p ~/.restic-password --repo /tmp/backup snapshots 显示。
我可以单击第一列上的 ID,并获得快照中所有文件的树视图。 与restic -p ~/.restic-password --repo /tmp/backup ls -l 相同的数据
或者,我可以单击快照的路径(第 5 列),然后我会得到备份中仅属于该路径的文件列表。 它显示与 restic -p ~/.restic-password --repo /tmp/backup ls -l 相同的数据
我可以单击单个文件并通过浏览器下载它。
理想情况下,我可以单击一个文件,然后获得按该文件日期排序的所有不同版本的列表。
快照始终提供整个文件系统的虚拟视图。 要识别文件的不同版本,将在命令行上使用以下命令。
restic -p ~/.restic-password --repo /tmp/backup find /root/snmp.json --json|jq
所有对象,其中 mtime 相同,必须减少为单个对象,因为文件没有改变。
恕我直言,在 Windows 上使用dokany 之类的东西添加对“restic mount”的支持会更有意义,在 Linux 和 Windows 上具有相同的恢复工作流程,并提供更好的用户体验,使用 OS Explorer 浏览文件。
请参阅https://github.com/restic/restic/pull/2862 ,该地址旨在解决Restic does not provide a handy way to browse through the backups on Windows
,其解决方式与在 Windows 以外的其他平台上完成的方式相同。
当然,但我想“典型”的 Windows 用户很难使用命令行界面,我的目标是提供一个任何用户都可以理解的简单易懂的界面。
作为一种解决方法,我将 @vincent-ogury 和@celogeek 的建议(谢谢!)放在一起,并制作了这个 dockerfile; https://github.com/stevedenman/restic-browser-docker
我一直在我的 Windows 机器上运行它(在 wsl2 上的 Docker 中),它非常适合浏览快照和下载文件。
对不起,你们说我不应该这样做吗? 为什么会有问题? 在我的情况下,建议的解决方案对于普通用户来说非常困难,我们需要做的就是启动程序(使用定义的标志)并打开浏览器!
你好。
作为一个restic用户,我只想在这个主题上花两分钱。
我是一个精通技术的用户,所以我对事物的静止方式感到满意。 我也知道 restic 是针对精通技术的人; 因此,当前的解决方案对某些人来说是/可能是复杂的。 但我认为实现可通过浏览器访问的本地 Web 服务器没有问题。 它不应该取代当前的解决方案,但作为辅助解决方案,拥有这样的东西会很好。 也许,这将使更多人更容易使用 restic。
谢谢。
我完全不同意“这对 Windows 用户来说太难了”的意见。 首先,这些用户已经设法运行 restic 来备份他们的东西,并且运行 mount 命令而不是备份命令并不困难。 其次,我们正在谈论打开命令行并在此处输入restic -r foo mount bar
。 说真的,这对任何人来说有多难? 如果有人对此有疑问,则这些人需要进行自我教育。 这不是什么“困难”的事情,它只是一个命令行。
编辑:只是为了澄清,我的意思是对于任何 Windows 用户来说这根本不难,因为restic mount
在 Windows 上工作,就像在 #2862 中一样 - 我不是在暗示@filippobottega在下面写了什么这个评论对于普通的 Windows 用户来说很容易。 我认为不应该使用 WSL 来使用restic mount
。
你好,
我已经使用 WSL2 在 Windows 资源管理器上成功安装了一个静态备份,但并不像我预期的那么容易。
你必须:
以 root 身份登录到 Ubuntu 会话并按照使用 mount 还原中的说明挂载 restic 备份,例如restic -r /mnt/c/ResticBackup -p /mnt/c/ResticBackup/password-file.txt mount /mnt/restic
最后你将能够看到:
其次,我们正在谈论打开命令行并在此处输入 restic -r foo mount bar。 说真的,这对任何人来说有多难?
如果您考虑使用 BIOS 选项让虚拟机管理程序工作、设置 WSL 并诊断其故障引起的任何问题等,这可能会非常费力。 在我看来,运行与我正在使用的 VmWare 和 VirtualBox 不兼容的 Microsoft Hypervisor 的要求对于 restic 来说简直是荒谬的。
如果您想在 LAN 中共享,Web 浏览器的指向和单击要容易得多,而且 http 的支持(提示:浏览器)比 smb 的 windows 风格要好一些。 也不清楚您是否可以通过 smb 公开这些坐骑,但即使可以,这一点仍然成立。
在我看来,毫无疑问,网络浏览器选项更简单。
如果您考虑使用 BIOS 选项让虚拟机管理程序工作、设置 WSL 并诊断其故障引起的任何问题等
@AndrewSav这不是这里讨论的内容。 请参阅@rawtaz 的评论(重点是我的)
编辑:只是为了澄清,我的意思是对于任何 Windows 用户_given
restic mount
在 Windows 上工作,就像在 #2862_ 中一样,这根本不难- 我不是在暗示@filippobottega在下面写的内容这个评论对于普通的 Windows 用户来说很容易。 我认为不应该使用 WSL 来使用restic mount
。
@cfbao您需要为此安装内核驱动程序。 我总是选择不需要额外内核驱动程序的选项。 我认为这应该是毫无疑问的,运行程序和打开浏览器比安装一些第三方软件更简单,然后可能重新启动然后运行一些晦涩的命令行(我的意思是你需要提供和输入命令行参数,在浏览器中,您只需单击即可导航)。
如果所述驱动程序中存在错误,则安装第三方驱动程序也具有影响整个系统的明显缺点。 同样,如果有更简单的(浏览器)选项,则 restic 对第三方驱动程序的要求是不合理的。
据我所知,这些选项并不矛盾,所以 restic 可以同时支持两者,从而满足两个群体的需求。
@cfbao您需要为此安装内核驱动程序。 我总是选择不需要额外内核驱动程序的选项。
@AndrewSav Point 是一项非常简单的任务,每个 Windows restic 用户都可以轻松完成。 因此,实现 Web 服务器的边际效用大大降低,并且可能无法证明静态开发和维护的成本是合理的。
@AndrewSav Web 界面非常适合查看备份,我可以想象。 但是如果有从不同目录恢复多个文件的任务,我更喜欢像样的文件管理器和作为文件系统安装的备份快照。 如果restic是后端提供WebDAV接口,由于其WebDAV客户端的限制,在Windows上仍然是劣质的解决方案:1)默认最大文件大小限制为50M,用户需要进行注册表操作才能将其扩展到4G; 2) 文件名中不支持某些字符。
我的观点是 Web 界面和正确的文件系统挂载是具有不同用例的互补功能。
第三方内核驱动程序(例如http://www.secfs.net/winfsp/)只需安装一次,无需重新启动。
我也不太明白关于“运行一些晦涩的命令行”的论点。 您是否也不需要运行一些 restic 命令来激活 Web 界面?
谢谢各位的意见! 所以让我们总结一下:
我没有看到任何阻止继续工作和为此进行 PR 的事情。 我个人是支持的。 我认为我们应该:
restic serve http
以便我们稍后可以添加其他服务方法,例如restic serve webdav
和restic serve rest
。restic serve http 127.0.0.1:8080
。现有工作和类似参考:
最有用的评论
我会推荐一个完整的其他应用程序,它类似于
restic-web
用 go 或 nodejs 编写的内容,并且可以通过 react 或 angular 来完成您可以从命令行界面执行的所有操作