Backupservers start: различия между версиями
Vintik (обсуждение | вклад) Нет описания правки |
|||
Строка 13: | Строка 13: | ||
===Настройки=== | ===Настройки=== | ||
При обычной настройке файл конфигурации сервера будет | При обычной настройке файл конфигурации сервера будет находиться по пути {{path|/etc/burp/burp-server.conf}}, а файлы конфигурации, специфичные для клиента, будут находиться в каталоге {{path|/etc/burp/clientconfdir}}. | ||
Многие глобальные параметры, установленные в {{path|burp-server.conf}}, могут быть переопределены для каждого клиента через файлы /etc/burp/clientconfdir. | Многие глобальные параметры, установленные в {{path|burp-server.conf}}, могут быть переопределены для каждого клиента через файлы /etc/burp/clientconfdir. | ||
Строка 21: | Строка 21: | ||
Каждый клиент должен быть представлен на сервере в каталоге {{path|/etc/burp/clientconfdir}}. | Каждый клиент должен быть представлен на сервере в каталоге {{path|/etc/burp/clientconfdir}}. | ||
Итак, чтобы добавить | Итак, чтобы добавить клиента с именем 'data_store', вам нужно создать на сервере файл {{path|/etc/burp/clientconfdir/data_store}}, который должен содержать как минимум такую строку (если вы не используете пароль, пропишите опцию {{cmd|<nowiki>password_check = 0</nowiki>}}): | ||
{{cmd|<nowiki>password = abcedfgh</nowiki>}} | {{cmd|<nowiki>password = abcedfgh</nowiki>}} | ||
=====На клиенте===== | =====На клиенте===== | ||
Теперь вам нужно установить burp на клиенте и отредактировать клиентский файл burp.conf | Теперь вам нужно установить burp на клиенте и отредактировать клиентский файл burp.conf таким образом, чтобы: | ||
*строка «cname» соответствовала имени файла clientconfdir на сервере; | |||
*строка «cname» | *строка «password» соответствовала содержимому файла clientconfdir; | ||
*строка «password» | *строка "server" содержала адрес сервера. | ||
*строка "server" | |||
В нашем примере эти три строки будут выглядеть так: | В нашем примере эти три строки будут выглядеть так: | ||
Строка 42: | Строка 41: | ||
====Добавление задания по времени==== | ====Добавление задания по времени==== | ||
В качестве планировщика задач используйте cron или systemd-timers. | |||
====Отключение клиента==== | ====Отключение клиента==== | ||
Строка 59: | Строка 58: | ||
/var/spool/burp/<клиент>/0000027 12.04.2015 01:24:29 | /var/spool/burp/<клиент>/0000027 12.04.2015 01:24:29 | ||
На этапах резервного копирования 1 (сканирование файловой системы) и 2 (отправка фактических данных) будет | На этапах резервного копирования 1 (сканирование файловой системы) и 2 (отправка фактических данных) будет использоваться символьная ссылка, указывающая на каталог под названием «working»: | ||
/var/spool/burp/<клиент>/working -> 0000027 12.04.2015 01:24:29 | /var/spool/burp/<клиент>/working -> 0000027 12.04.2015 01:24:29 | ||
Строка 71: | Строка 70: | ||
/var/spool/burp/<клиент>/current -> 0000027 12.04.2015 01:24:29 | /var/spool/burp/<клиент>/current -> 0000027 12.04.2015 01:24:29 | ||
Если во время резервного копирования произошла какая-либо ошибка и резервное копирование было прервано, сервер Burp должен | Если во время резервного копирования произошла какая-либо ошибка и резервное копирование было прервано, сервер Burp должен определить сценарий дальнейших действий, который будет запущен при следующем сеансе связи клиент-сервер. | ||
Если в результате прерывания осталась символьная ссылка «finishing», сервер попытается продолжить и завершить резервное копирование. Часть 4-го этапа может включать операции которые изменяют непосредственно предыдущую резервную копию (возможно, потребуется преобразовать файлы в обратные дельты), поэтому, как только она «заканчивается», Burp может только попытаться продолжить выполнение. Обратите внимание: когда резервное копирование завершается, больше никаких данных от клиента не требуется. | Если в результате прерывания осталась символьная ссылка «finishing», сервер попытается продолжить и завершить резервное копирование. Часть 4-го этапа может включать операции, которые изменяют непосредственно предыдущую резервную копию (возможно, потребуется преобразовать файлы в обратные дельты), поэтому, как только она «заканчивается», Burp может только попытаться продолжить выполнение задачи. Обратите внимание: когда резервное копирование завершается, больше никаких данных от клиента не требуется. | ||
Если в результате прерывания осталась символическая ссылка «working», сервер проверит опцию «working_dir_recovery_method», позволяющую | Если в результате прерывания осталась символическая ссылка «working», сервер проверит опцию «working_dir_recovery_method», позволяющую выбрать один из двух вариантов: | ||
*'delete': удаление старого рабочего каталога. | |||
*'resume': продолжение предыдущего резервного копирования с того места, где оно было прервано. | |||
*'resume': | |||
{{Note|Если клиент изменил параметры включения/исключения конфигурации, поскольку резервное копирование было прервано, метод восстановления автоматически переключится на «delete».}} | {{Note|Если клиент изменил параметры включения/исключения конфигурации, поскольку резервное копирование было прервано, метод восстановления автоматически переключится на «delete».}} | ||
Строка 88: | Строка 85: | ||
Вариант 'delete' — самый безопасный (а также вариант по умолчанию), поскольку это означает, что весь процесс резервного копирования должен продолжаться непрерывно, чтобы резервное копирование могло быть выполнено полностью. | Вариант 'delete' — самый безопасный (а также вариант по умолчанию), поскольку это означает, что весь процесс резервного копирования должен продолжаться непрерывно, чтобы резервное копирование могло быть выполнено полностью. | ||
Для 'resume' burp будет использовать исходный клиентский файл рабочего каталога для сканирования системы, чтобы запросить оставшиеся файлы, которые ему необходимы для завершения резервной копии. | Для 'resume' burp будет использовать исходный клиентский файл рабочего каталога для сканирования системы, чтобы запросить оставшиеся файлы, которые ему необходимы для завершения резервной копии. | ||
Строка 95: | Строка 90: | ||
Если вы используете Windows (или какую-либо другую ОС, которая аналогичным образом создает доступные для просмотра снимки файловой системы для резервного копирования), это будет означать, что файлы будут скопированы из более чем одного снимка, поэтому восстановление будет несогласованным, если вы планируете восстановление на голое железо. | Если вы используете Windows (или какую-либо другую ОС, которая аналогичным образом создает доступные для просмотра снимки файловой системы для резервного копирования), это будет означать, что файлы будут скопированы из более чем одного снимка, поэтому восстановление будет несогласованным, если вы планируете восстановление на голое железо. | ||
Кроме того, в коде 'resume' иногда обнаруживаются ошибки, | Кроме того, в коде 'resume' иногда обнаруживаются ошибки, которых можно избежать, если вы используете 'delete'. | ||
У некоторых людей много данных, и им требуется дополнительная помощь при завершении первоначального резервного копирования. Они могут использовать «resume» до тех пор, пока не будет получена первоначальная резервная копия, и | У некоторых людей много данных, и им требуется дополнительная помощь при завершении первоначального резервного копирования. Они могут использовать «resume» до тех пор, пока не будет получена первоначальная резервная копия, и | ||
Строка 103: | Строка 98: | ||
https://burp.grke.org/docs/restoring.html | https://burp.grke.org/docs/restoring.html | ||
Рассмотрим несколько примеров восстановления данных. Для упрощения результаты вывода команд незначительно сокращены. | |||
На стороне клиента | На стороне клиента сформируйте перечень доступных резервных копий: | ||
$ burp -a l | $ burp -a l | ||
Строка 113: | Строка 108: | ||
Backup: 0000004 2018-01-27 01:30:55 +0000 | Backup: 0000004 2018-01-27 01:30:55 +0000 | ||
Доступно четыре резервных | Доступно четыре резервных копии. Давайте посмотрим на содержимое резервной копии 3: | ||
$ burp -a l -b 3 | $ burp -a l -b 3 | ||
Строка 131: | Строка 126: | ||
Чтобы вернуть все эти файлы в их исходное местоположение, просто измените «l» в предыдущей команде на «r». | Чтобы вернуть все эти файлы в их исходное местоположение, просто измените «l» в предыдущей команде на «r». Если файлы уже существуют в исходном местоположении, будут выданы предупреждения. '-d' тоже требуется, потому что вам нужно указать для burp целевой каталог для восстановления: | ||
$ burp -a r -b 3 -d / | $ burp -a r -b 3 -d / | ||
Строка 138: | Строка 133: | ||
...etc... | ...etc... | ||
Вместо этого я могу добавить «-f», чтобы | Вместо этого я могу добавить «-f», чтобы принудительно перезаписать все существующие файлы без предупреждения: | ||
$ burp -a r -b 3 -d / -f | $ burp -a r -b 3 -d / -f | ||
... | ... | ||
Возможно, вы хотите восстановить файлы в другое место. Просто добавьте свой путь с опцией «-d». Burp создаст каталог, если его не существует: | |||
$ burp -a r -b 3 -d /tmp/restore | $ burp -a r -b 3 -d /tmp/restore | ||
Строка 153: | Строка 148: | ||
-rw-r--r-- 1 graham graham 36402567 Jan 18 11:05 /tmp/restore/home/graham/testdir/mydir1/cswdcd07.mp3 | -rw-r--r-- 1 graham graham 36402567 Jan 18 11:05 /tmp/restore/home/graham/testdir/mydir1/cswdcd07.mp3 | ||
С опцией «-s» есть возможность сократить пути. Мы уберем '/home/graham/': | |||
$ burp -a r -b 3 -d /tmp/restore -s 3 | $ burp -a r -b 3 -d /tmp/restore -s 3 | ||
Строка 161: | Строка 156: | ||
Рассмотрим способ выборочного восстановления данных с помощью регулярных выражений. Например, требуется восстановление только папки «MyDir2». Сначала рекомендуется составить список, чтобы убедиться в правильной работе выражения: | |||
$ burp -a l -b 3 -r mydir2 | $ burp -a l -b 3 -r mydir2 | ||
Строка 171: | Строка 166: | ||
/home/graham/testdir/mydir2/1200.x | /home/graham/testdir/mydir2/1200.x | ||
Если результат соответствует ожиданиям, просто измените «l» на «r» и укажите целевой каталог. | |||
$ burp -a r -b 3 -r mydir2 -d / | $ burp -a r -b 3 -r mydir2 -d / | ||
... | ... | ||
Конечно, файлы снова | Конечно, файлы снова восстановятся в исходном месте, так что вы можете указать опцию «-d» и снова добавить опцию «-s»: | ||
$ burp -a r -b 3 -r mydir2 -d /tmp/restore -s 3 | $ burp -a r -b 3 -r mydir2 -d /tmp/restore -s 3 | ||
... | ... | ||
Для восстановления отдельного файла используйте соответствующее ему регулярное выражение. | |||
$ burp -a l -b 3 -r /home/graham/testdir/mydir2/1195.pdf -d / | $ burp -a l -b 3 -r /home/graham/testdir/mydir2/1195.pdf -d / | ||
Строка 188: | Строка 182: | ||
... | ... | ||
Поскольку | Поскольку в примере есть только один путь, который содержит 1195.pdf, можно использовать гораздо более короткое регулярное выражение. Например: | ||
$ burp -a l -b 3 -r 1195.pdf -d / | $ burp -a l -b 3 -r 1195.pdf -d / | ||
Строка 196: | Строка 190: | ||
==fwbackups== | ==fwbackups== | ||
{{Note| | {{Note|По состоянию на 24.11.2024 программа доступна только в Сизифе и работает некорректно - {{altbug|44702}}}} | ||
[[Файл:fwbackups.png|480px]] | [[Файл:fwbackups.png|480px]] | ||
Строка 202: | Строка 196: | ||
Особенности: | Особенности: | ||
* | *Доступна любому пользователю (без root-прав) | ||
* | *Может выполнять резервное копирование по автоматическому расписанию или ручному запуску | ||
*Для резервного копирования настраиваются "наборы" - "sets" ("сеты"), в которых пользователь указывает необходимые файлы и каталоги | *Для резервного копирования настраиваются "наборы" - "sets" ("сеты"), в которых пользователь указывает необходимые файлы и каталоги | ||
*Копирование может выполняться в локальную папку или на SSH сервер | *Копирование может выполняться в локальную папку или на SSH сервер | ||
**Для SSH-сервера указываются - хост, порт, имя пользователя, пароль, каталог. Есть возможность протестировать соединение. | **Для SSH-сервера указываются - хост, порт, имя пользователя, пароль, каталог. Есть возможность протестировать соединение. | ||
* | *Прямое копирование или со сжатием в архив (есть возможность создать архив с двумя параметрами "время" (меньшая скорость создания)/"качество" (лучшее качество сжатия)) | ||
* | *Указание количества архивных копий для сохранения (если указать 0, резервные копии будут создаваться каждый раз. Если указать другое число, будет создано указанное количество дополнительных копий) | ||
* | *Команды, выполняемые до и после копирования (можно указать команды выполняемые до и после запуска команды копирования) | ||
* | *Настройка времени запуска копирования (время запуска указывается опциональными критериями или по шаблону CRON) | ||
===Установка=== | ===Установка=== | ||
{{todo|Будет описано после исправления бага и бэкпорта в P10/P11}} | {{todo|Будет описано после исправления бага и бэкпорта в P10/P11}} |
Текущая версия от 23:09, 24 ноября 2024
Утилиты для бэкапов
Burp
Burp - клиент-серверная программа для резервного копирования. Есть центральный сервер для хранения копий и клиенты, которые к нему подключаются и копируют на него информацию.
Установка
# apt-get install burp
Запуск серверной части
# systemctl enable --now burp-server.service
Настройки
При обычной настройке файл конфигурации сервера будет находиться по пути /etc/burp/burp-server.conf, а файлы конфигурации, специфичные для клиента, будут находиться в каталоге /etc/burp/clientconfdir.
Многие глобальные параметры, установленные в burp-server.conf, могут быть переопределены для каждого клиента через файлы /etc/burp/clientconfdir.
Добавление нового клиента
На сервере
Каждый клиент должен быть представлен на сервере в каталоге /etc/burp/clientconfdir.
Итак, чтобы добавить клиента с именем 'data_store', вам нужно создать на сервере файл /etc/burp/clientconfdir/data_store, который должен содержать как минимум такую строку (если вы не используете пароль, пропишите опцию password_check = 0):
password = abcedfgh
На клиенте
Теперь вам нужно установить burp на клиенте и отредактировать клиентский файл burp.conf таким образом, чтобы:
- строка «cname» соответствовала имени файла clientconfdir на сервере;
- строка «password» соответствовала содержимому файла clientconfdir;
- строка "server" содержала адрес сервера.
В нашем примере эти три строки будут выглядеть так:
cname = data_store password = abcdefgh server= 1.2.3.4
При первом подключении нового клиента к серверу он выполнит обмен SSL-сертификатами.
Добавление задания по времени
В качестве планировщика задач используйте cron или systemd-timers.
Отключение клиента
Чтобы помешать клиенту успешно взаимодействовать с сервером, вам следует переместить файл /etc/burp/clientconfdir/<client> в другое место. Клиент, если он еще существует, будет продолжать попытки подключения.
Например:
# mv /etc/burp/clientconfdir/<клиент> /etc/burp/clientconfdir/<клиент>.disable
Тем не менее, это не остановит клиента, пытающегося подключиться к серверу на основе его задания. Если вы все еще можете получить доступ к клиенту, я бы порекомендовал отключить задание.
Рабочий каталог и методы восстановления
Во время резервного копирования сервер создает каталог в области хранения клиента с номером и меткой времени.
Например:
/var/spool/burp/<клиент>/0000027 12.04.2015 01:24:29
На этапах резервного копирования 1 (сканирование файловой системы) и 2 (отправка фактических данных) будет использоваться символьная ссылка, указывающая на каталог под названием «working»:
/var/spool/burp/<клиент>/working -> 0000027 12.04.2015 01:24:29
На этапах резервного копирования 3 (генерация манифеста) и 4 (перетасовка) символьная ссылка будет переименована в «finishing»:
/var/spool/burp/<клиент>/finishing -> 0000027 12.04.2015 01:24:29
Когда резервное копирование будет завершено, символьная ссылка будет переименована в «current»:
/var/spool/burp/<клиент>/current -> 0000027 12.04.2015 01:24:29
Если во время резервного копирования произошла какая-либо ошибка и резервное копирование было прервано, сервер Burp должен определить сценарий дальнейших действий, который будет запущен при следующем сеансе связи клиент-сервер.
Если в результате прерывания осталась символьная ссылка «finishing», сервер попытается продолжить и завершить резервное копирование. Часть 4-го этапа может включать операции, которые изменяют непосредственно предыдущую резервную копию (возможно, потребуется преобразовать файлы в обратные дельты), поэтому, как только она «заканчивается», Burp может только попытаться продолжить выполнение задачи. Обратите внимание: когда резервное копирование завершается, больше никаких данных от клиента не требуется.
Если в результате прерывания осталась символическая ссылка «working», сервер проверит опцию «working_dir_recovery_method», позволяющую выбрать один из двух вариантов:
- 'delete': удаление старого рабочего каталога.
- 'resume': продолжение предыдущего резервного копирования с того места, где оно было прервано.
Вариант 'delete' — самый безопасный (а также вариант по умолчанию), поскольку это означает, что весь процесс резервного копирования должен продолжаться непрерывно, чтобы резервное копирование могло быть выполнено полностью.
Для 'resume' burp будет использовать исходный клиентский файл рабочего каталога для сканирования системы, чтобы запросить оставшиеся файлы, которые ему необходимы для завершения резервной копии.
Если вы используете Windows (или какую-либо другую ОС, которая аналогичным образом создает доступные для просмотра снимки файловой системы для резервного копирования), это будет означать, что файлы будут скопированы из более чем одного снимка, поэтому восстановление будет несогласованным, если вы планируете восстановление на голое железо.
Кроме того, в коде 'resume' иногда обнаруживаются ошибки, которых можно избежать, если вы используете 'delete'.
У некоторых людей много данных, и им требуется дополнительная помощь при завершении первоначального резервного копирования. Они могут использовать «resume» до тех пор, пока не будет получена первоначальная резервная копия, и после этого переключиться на «delete».
Восстановление
https://burp.grke.org/docs/restoring.html
Рассмотрим несколько примеров восстановления данных. Для упрощения результаты вывода команд незначительно сокращены.
На стороне клиента сформируйте перечень доступных резервных копий:
$ burp -a l Backup: 0000001 2018-01-26 10:47:26 +0000 (deletable) Backup: 0000002 2018-01-26 10:48:13 +0000 Backup: 0000003 2018-01-27 01:30:42 +0000 Backup: 0000004 2018-01-27 01:30:55 +0000
Доступно четыре резервных копии. Давайте посмотрим на содержимое резервной копии 3:
$ burp -a l -b 3 Backup: 0000003 2018-01-27 01:30:42 +0000 /home/graham/testdir/mydir1 /home/graham/testdir/mydir1/B17689730947800001.pdf /home/graham/testdir/mydir1/Invoice INV-8453.pdf /home/graham/testdir/mydir1/On The Run 2017-05-13.mp3 /home/graham/testdir/mydir1/On the run 2016-11-26.mp3 /home/graham/testdir/mydir1/Red Pill 2016-11-26.mp3 /home/graham/testdir/mydir1/cswdcd07.mp3 /home/graham/testdir/mydir1/cswdcd12.mp3 /home/graham/testdir/mydir2 /home/graham/testdir/mydir2/1195.pdf /home/graham/testdir/mydir2/1199.txt /home/graham/testdir/mydir2/1200.x
Чтобы вернуть все эти файлы в их исходное местоположение, просто измените «l» в предыдущей команде на «r». Если файлы уже существуют в исходном местоположении, будут выданы предупреждения. '-d' тоже требуется, потому что вам нужно указать для burp целевой каталог для восстановления:
$ burp -a r -b 3 -d / 2018-01-27 01:33:25 +0000: burp[5917] WARNING: Path exists: /home/graham/testdir/mydir1/B17689730947800001.pdf 2018-01-27 01:33:25 +0000: burp[5917] WARNING: Path exists: /home/graham/testdir/mydir1/Invoice INV-8453.pdf ...etc...
Вместо этого я могу добавить «-f», чтобы принудительно перезаписать все существующие файлы без предупреждения:
$ burp -a r -b 3 -d / -f ...
Возможно, вы хотите восстановить файлы в другое место. Просто добавьте свой путь с опцией «-d». Burp создаст каталог, если его не существует:
$ burp -a r -b 3 -d /tmp/restore ...
После запуска вышеупомянутой команды и просмотра /tmp/restore вы обнаружите, что сохранена вся оригинальная структура каталогов. Например:
$ ls -l /tmp/restore/home/graham/testdir/mydir1/cswdcd07.mp3 -rw-r--r-- 1 graham graham 36402567 Jan 18 11:05 /tmp/restore/home/graham/testdir/mydir1/cswdcd07.mp3
С опцией «-s» есть возможность сократить пути. Мы уберем '/home/graham/':
$ burp -a r -b 3 -d /tmp/restore -s 3 ... $ ls -l /tmp/restore/testdir/mydir1/cswdcd07.mp3 -rw-r--r-- 1 graham graham 36402567 Jan 18 11:05 /tmp/restore/testdir/mydir1/cswdcd07.mp3
Рассмотрим способ выборочного восстановления данных с помощью регулярных выражений. Например, требуется восстановление только папки «MyDir2». Сначала рекомендуется составить список, чтобы убедиться в правильной работе выражения:
$ burp -a l -b 3 -r mydir2 Backup: 0000003 2018-01-27 01:30:42 +0000 With regex: mydir2 /home/graham/testdir/mydir2 /home/graham/testdir/mydir2/1195.pdf /home/graham/testdir/mydir2/1199.txt /home/graham/testdir/mydir2/1200.x
Если результат соответствует ожиданиям, просто измените «l» на «r» и укажите целевой каталог.
$ burp -a r -b 3 -r mydir2 -d / ...
Конечно, файлы снова восстановятся в исходном месте, так что вы можете указать опцию «-d» и снова добавить опцию «-s»:
$ burp -a r -b 3 -r mydir2 -d /tmp/restore -s 3 ...
Для восстановления отдельного файла используйте соответствующее ему регулярное выражение.
$ burp -a l -b 3 -r /home/graham/testdir/mydir2/1195.pdf -d / ... $ burp -a r -b 3 -r /home/graham/testdir/mydir2/1195.pdf -d / ...
Поскольку в примере есть только один путь, который содержит 1195.pdf, можно использовать гораздо более короткое регулярное выражение. Например:
$ burp -a l -b 3 -r 1195.pdf -d / ... $ burp -a r -b 3 -r 1195.pdf -d / ...
fwbackups
Fwbackups - GUI утилита для резервного копирования файлов по SSH.
Особенности:
- Доступна любому пользователю (без root-прав)
- Может выполнять резервное копирование по автоматическому расписанию или ручному запуску
- Для резервного копирования настраиваются "наборы" - "sets" ("сеты"), в которых пользователь указывает необходимые файлы и каталоги
- Копирование может выполняться в локальную папку или на SSH сервер
- Для SSH-сервера указываются - хост, порт, имя пользователя, пароль, каталог. Есть возможность протестировать соединение.
- Прямое копирование или со сжатием в архив (есть возможность создать архив с двумя параметрами "время" (меньшая скорость создания)/"качество" (лучшее качество сжатия))
- Указание количества архивных копий для сохранения (если указать 0, резервные копии будут создаваться каждый раз. Если указать другое число, будет создано указанное количество дополнительных копий)
- Команды, выполняемые до и после копирования (можно указать команды выполняемые до и после запуска команды копирования)
- Настройка времени запуска копирования (время запуска указывается опциональными критериями или по шаблону CRON)