Реализуйте команду restic, которая запускает веб-сервер для просмотра снимков.
Это кажется большой сложностью для чего-то, что не является основной обязанностью программы резервного копирования. Это действительно нужно? Какой вариант использования? Я бы предпочел FUSE (https://github.com/restic/restic/issues/27).
В окнах нет предохранителя. При использовании http://golang.org/pkg/net/http/#FileServer очень мало работы с базовым веб-сервером
В точности то, что я думал, это не так много кода и, вероятно, единственный способ просматривать снимки в Windows.
Я согласен. В какой-то момент пришло время для графического интерфейса, и я думаю, что наиболее естественным шагом к этому является встроенный веб-сервер, который может представить его на локальном хосте или даже на других интерфейсах, если это необходимо. У каждого есть веб-браузер, и вам не придется возиться с приложениями.
@rakoo , вы хотите работать над веб-сервером в следующий раз?
Мысли о пользовательском интерфейсе:
restic server
http://RarOjHogvueHov:egsevtekwucvith@localhost/snapshots
Привязка к чему-то другому, кроме localhost, не должна быть невозможной, но очень сложной. Возможно, мы жестко закодируем localhost для первой версии и посмотрим, не пожалуются ли пользователи.
Мысли?
Это более или менее то, что я имел в виду, за исключением того, что без имени пользователя и пароля: IMO они не представляют большой ценности против потенциального злоумышленника (мы бы сделали простой HTTP, поэтому имя пользователя и пароль были четко видны).
Меня устраивает привязка только к localhost: видя пространство, в котором мы работаем, я ожидаю, что у пользователя будет ssh для доступа к их VPS, поэтому я думаю, что справедливо ожидать, что они будут туннелировать доступ к своему репо следующим образом:
backupserver> restic server 5000
clientmachine> ssh -Nf -L 5000:backupserver:5000
clientmachine> open http://localhost:5000/
Я понимаю, что это довольно давно, но +1 от меня. Я также не думаю, что встроенное имя пользователя / пароль полезны для меня, это все равно стоит за VPN, и я бы хотел, чтобы это началось во время запуска системы.
@yatesco Какой у вас вариант использования для запуска обсуждаемого компонента веб-сервера во время запуска системы? Я не могу придумать ни одного, не могли бы вы уточнить?
Привет @ fd0 - репозиторий должен быть открыт для команды.
Возможно, что довольно необычно, у меня есть куча данных, которые я не хочу торчать, поэтому использовать этот архив в качестве «долгосрочного хранилища» - это здорово, но тогда мне нужно предоставить к нему доступ от команды и общий ресурс самбы (например, # 377) или веб-интерфейс было бы здорово
Хорошо, спасибо за объяснение.
Можно ли выставить Fuse mount через Samba? Не могу заставить его работать, папка не отображается. Как мне заставить предохранитель использовать "allow_other"?
Я обрисовал в общих чертах, что нужно сделать здесь: https://github.com/restic/restic/pull/754#issuecomment -276023059
Также см. Проблему № 767 для получения информации о вариантах крепления предохранителя.
Это просто зритель, который нам нужен? или полноценный графический интерфейс для всех задач? Вот особенности, которые я себе представляю для графического интерфейса:
Восстановить функции:
Возможности администратора:
В Electron мы сохраняем кроссплатформенный / HTML5 графический интерфейс, но с дополнительными функциями, такими как доступ к файловой системе, команды exec, открытые ssh-соединения, собственные модули и т. Д.
Я не могу говорить от имени проекта, но для меня функции восстановления было бы достаточно.
Я в основном работаю с Windows-ящиками, подключенными к серверам по SSH, и если что-то выйдет из строя, я хотел бы быстро подключить свой резервный диск, чтобы просмотреть / загрузить файлы, о которых идет речь.
Привет, господа, только что начал работать с рестиком, действительно хорошая работа, спасибо! Мои пятьдесят центов по этой теме. Просто `` просмотреть снимок '' немного бесполезно imho (можно сделать с помощью плавкого крепления, опубликованного любыми средствами, такими как nginx, samba и т. Д.), Определенно должны быть некоторые полезные действия, которые пользователь может сделать дальше, например, восстановить файлы на выбранные хосты, восстановить sql дамп на какой-то хост db, легко восстановите все, что было скопировано. Есть две основные вещи: 1. Поиск / классификация данных и 2. Выполнение каких-либо действий с данными (например, восстановление, удаление, совместное использование, классификация, сравнение копий (сравнение) и т. Д.). Почему не FUSE: это вообще не про Windows, а про UX. Наличие веб-интерфейса для хранилища резервных копий с расширенными возможностями поиска и легкого восстановления (адаптированного к конкретному типу данных и системе) - это действительно здорово. Я представляю себе десятки вариантов использования, которые имеют смысл для хранилища резервных копий (расширенный поиск, удаленное восстановление, предложения политики резервного копирования, маскирование данных, защита PII, уничтожение, соответствие данных, отчетность и т. Д.), Имея веб-фронт для некоторых из них (по крайней мере, поиск и восстановить) было бы здорово! Для резервного копирования, где в большинстве случаев основной целью является восстановление последней версии чего-либо, в случае повреждения данных, как можно быстрее, этого достаточно, но для таких функций, как архивирование, наличие веб-интерфейса является обязательным. Кстати, архив данных - еще одна интересная функция, например, отсоединить определенные данные от restic snap и переместить их в долгосрочный архив, но это другая история и не по теме для темы) И да, если вы решите сделать это в будущем, imho this должно выполняться в rest-server, оборачивая основные функции в rest api. Последнее имеет смысл для интеграции со сторонними системами.
Я бы порекомендовал целое другое приложение, которое называется что-то вроде restic-web
написанное на go или nodejs, и реагирует или angular, чтобы иметь возможность делать все, что вы можете делать из интерфейса командной строки.
Может ли restic использовать что-то вроде https://github.com/dokan-dev/dokany/ в Windows?
Я иногда использую cppcryptfs для доступа к папкам под Windows, которые были зашифрованы с помощью gocryptfs под Linux, и, похоже, это работает достаточно хорошо.
Привет,
Я нашел эту статью: https://devblogs.microsoft.com/commandline/announcing-wsl-2/
Он говорит:
Теперь, когда 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, я думал, что Алирон имел в виду WSL в целом. Также полезно знать, что Hyper V станет доступен для пользователей Windows 10 Home.
Я бы сказал, что мы должны предпочесть сервер Webdav (№ 485) вместо интерфейса HTML.
Это также позволит пользователям легко добавить его в качестве сетевого диска в проводник Windows.
Если у вас есть сервер (или unix / linux) с nodejs, вы можете легко это сделать:
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.
Веб-версия может быть полезна для других платформ.
Это может упростить командную строку, чтобы показывать снимки, просматривать, забывать, запускать новые резервные копии ...
Я хотел бы поработать над этим вопросом. Идея состоит в том, чтобы реализовать ванильный HTTP-сервер Go с некоторым базовым шаблоном html. Наш вариант использования - иметь какой-то универсальный базовый интерфейс для Restic под Windows.
Вот объем моей задачи:
Проблема
Restic не предоставляет удобный способ просмотра резервных копий в Windows.
Задача
Попробуйте реализовать базовое доказательство концепции встроенного веб-сервера, который позволяет просматривать и восстанавливать резервные копии с помощью браузера.
Пример
Выполнение следующих команд создаст две резервные копии, и вы узнаете, как просматривать резервные копии через командную строку.
openssl rand -hex 10> ~ / .restic-пароль
restic -p ~ / .restic-password init --repo / tmp / backup
restic -p ~ / .restic-password --repo / tmp / backup резервное копирование ~
дата> ~ / файл-с-изменениями.txt
restic -p ~ / .restic-password --repo / tmp / backup резервное копирование ~
restic -p ~ / .restic-password --repo / tmp / резервные копии снимков
репозиторий 2ad83051 успешно открыт, пароль правильный
b8ee7b24 2020-09-11 17:20:17 thorsten-devvm-v3 / корень
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 найти snmp.json
restic -p ~ / .restic-password --repo / tmp / backup restore latest --target / tmp / restore --include "/root/snmp.json"
Характеристики
Выполняя что-то подобное, веб-сервер запускается, и внутренняя резервная копия становится «открытой».
restic -p ~ / .restic-password --repo / tmp / резервный веб-сервер 127.0.0.1:3344
Направляя свой браузер на
Я могу щелкнуть идентификатор в первом столбце, и я получаю древовидное представление всех файлов в снимке. Те же данные, что и 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 одинаково, необходимо свести к одному объекту, потому что файлы не изменились.
ИМХО, добавление поддержки «restic mount» в окнах с чем-то вроде dokany имело бы больше смысла иметь такой же рабочий процесс восстановления в 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 (спасибо!), И создал этот файл докеров; https://github.com/stevedenman/restic-browser-docker
Я запускал его на своем компьютере с Windows (в Docker на wsl2), и он отлично работает для просмотра снимков и загрузки файлов.
извините, ребята, вы говорите, что я не должен этого делать? почему с этим проблема? предлагаемые решения довольно сложны для обычного пользователя, в моем случае все, что нам нужно сделать - запустить программу (с определенными флагами) и открыть браузер!
Привет.
Как товарищ по рестику, я просто хотел выложить свои два цента на эту тему.
Я технически подкованный пользователь, поэтому меня устраивает, как обстоят дела в покое. Я также знаю, что restic направлен на технически подкованных людей; следовательно, текущие решения для некоторых могут быть сложными. Но я не вижу проблем с реализацией локального веб-сервера, доступного через браузер. Он не должен заменять текущие решения, но в качестве побочного решения было бы неплохо иметь что-то подобное. И, возможно, это сделало бы отдых более доступным для еще большего количества людей.
Спасибо.
Я полностью не согласен с мнением «это слишком сложно для пользователей Windows». Прежде всего, этим пользователям уже удалось запустить restic для резервного копирования своих данных, и выполнение команды mount вместо команды backup не сложнее. Во-вторых, мы говорим об открытии командной строки и вводе здесь restic -r foo mount bar
. Серьезно, как это кому-то тяжело? Если у кого-то есть проблемы с этим, эти люди должны учиться. Это не что-то «сложное», это всего лишь одна командная строка.
РЕДАКТИРОВАТЬ: Чтобы уточнить, я имею в виду, что это не должно быть сложно для любого пользователя Windows, учитывая, что restic mount
работает в Windows, как в # 2862 - я не предлагаю, о чем @filippobottega написал прямо ниже этот комментарий прост для среднего пользователя Windows. Я не думаю, что для использования restic mount
нужно использовать WSL.
Привет,
Я успешно смонтировал резервную копию в проводнике Windows с помощью WSL2, но это не так просто, как я ожидал.
Вы должны:
Войдите в сеанс Ubuntu как root и смонтируйте остаточную резервную копию, как описано в разделе Восстановление с помощью монтирования , например restic -r /mnt/c/ResticBackup -p /mnt/c/ResticBackup/password-file.txt mount /mnt/restic
В конце вы сможете увидеть:
Во-вторых, мы говорим об открытии командной строки и вводе здесь restic -r foo mount bar. Серьезно, как это кому-то тяжело?
Если вы рассматриваете варианты BIOS, позволяющие гипервизору работать, настраивая WSL и диагностируя любые проблемы, связанные с его неисправностью и т. Д., Это может быть довольно трудоемким. На мой взгляд, требование запуска гипервизора Microsoft, несовместимого с VmWare и VirtualBox, которые я использую, просто смешно для отдыха.
Веб-браузер «указывать и щелкать» намного проще, а также поддержка http несколько лучше (подсказка: браузеры), чем версия smb для Windows, если вы хотите поделиться в локальной сети. Также неясно, можете ли вы вообще выставить эти крепления через smb, но даже если вы можете, точка все равно остается в силе.
На мой взгляд, нет никаких сомнений в том, что вариант с веб-браузером проще.
Если вы рассматриваете варианты BIOS, позволяющие гипервизору работать, настройку WSL и диагностику любых проблем, связанных с его неисправностью и т. Д.
@AndrewSav Это не то, что здесь обсуждается. См. Комментарий от @rawtaz (выделено мной)
РЕДАКТИРОВАТЬ: Чтобы уточнить, я имею в виду, что это не должно быть сложно для любого пользователя Windows _given
restic mount
работающего в Windows, как в # 2862_ - я не предлагаю то, о чем @filippobottega написал прямо ниже этот комментарий прост для среднего пользователя Windows. Я не думаю, что нужно использовать WSL для использованияrestic mount
.
@cfbao для этого вам необходимо установить драйвер ядра. Я всегда за вариант, не требующий дополнительных драйверов ядра. Я думаю, что не должно быть сомнений в том, что запуск программы и открытие браузера проще, чем установка стороннего программного обеспечения, возможно, перезагрузка после этого, а затем запуск какой-то непонятной командной строки (под этим я имею в виду, что вам нужно указать и ввести параметры командной строки, в браузере вы просто можете нажать для навигации).
Установка сторонних драйверов также имеет явный недостаток: если в указанном драйвере есть ошибка, это повлияет на всю систему. Опять же, требование restic для стороннего драйвера неразумно, если есть гораздо более простые (браузерные) параметры.
Насколько я понимаю, эти варианты не противоречат друг другу, поэтому restic может поддерживать оба и, таким образом, удовлетворять потребности обеих групп.
@cfbao для этого вам необходимо установить драйвер ядра. Я всегда за вариант, не требующий дополнительных драйверов ядра.
@AndrewSav Дело в том, что это очень простая задача, которую каждый пользователь Windows с ограниченным доступом сможет легко выполнить. Таким образом, предельная полезность реализации веб-сервера значительно снижается и может не оправдывать затраты на остановку разработки и обслуживания.
@AndrewSav Веб-интерфейс хорош для просмотра резервной копии, я могу это представить. Но если есть задача восстановить несколько файлов из разных каталогов, я бы предпочел достойный файловый менеджер и моментальный снимок резервной копии, смонтированные как файловая система. Если restic должен предоставить интерфейс WebDAV на задней панели, что по-прежнему является неполноценным решением в Windows из-за ограничений клиента WebDAV: 1) максимальный размер файла по умолчанию составляет 50 МБ, пользователю потребуется выполнить манипуляции с реестром, чтобы расширить его до 4G; 2) некоторые символы не поддерживаются в именах файлов.
Я считаю, что веб-интерфейс и правильное монтирование файловой системы являются дополнительными функциями с несколько разными вариантами использования.
Драйвер ядра стороннего производителя (например, http://www.secfs.net/winfsp/) необходимо установить только один раз, и перезагрузка не требуется.
Я также не совсем понимаю аргумент о «запуске какой-то непонятной командной строки». Разве вам не нужно запускать какую-нибудь команду restic, чтобы активировать веб-интерфейс?
Спасибо всем за ваш вклад! Итак, подведем итоги:
Не вижу ничего, что мешает продолжению работы и пиара за это. Лично я это поддерживаю. Я думаю, нам следует:
restic serve http
чтобы позже мы могли добавить другие методы обслуживания, такие как restic serve webdav
и, возможно, restic serve rest
.restic serve http 127.0.0.1:8080
.Существующие работы и аналогичные ссылки:
Самый полезный комментарий
Я бы порекомендовал целое другое приложение, которое называется что-то вроде
restic-web
написанное на go или nodejs, и реагирует или angular, чтобы иметь возможность делать все, что вы можете делать из интерфейса командной строки.