Резервное копирование · 4 min read · Dec 14, 2025

Резервное копирование только для добавления с помощью borg на другой VPS или выделенный сервер

Этот учебник покажет, как создать резервную копию данных на сервере, обозначенном как основной сервер, на другой хост, здесь названный сервер резервного копирования, с помощью бесплатной программы резервного копирования Borg. Сервер резервного копирования будет настроен таким образом, что основной сервер в обычном использовании сможет только добавлять новые данные, а не удалять или изменять старые резервные копии. Эта функция только для добавления, в сочетании с тем фактом, что резервные копии хранятся на отдельном сервере в отдельном месте, делает резервные копии защищенными от потери данных, например, в результате природных катастроф или хакерской атаки на основной сервер.

Предварительные условия для выполнения этого руководства - использовать Debian Stretch (9) или Debian Buster (10) и иметь два доступных сервера: один основной сервер, с которого будут сделаны резервные копии, и другой сервер резервного копирования, где будут храниться архивы резервных копий. Эти два сервера должны находиться в разных местах для оптимальной защиты.

Это руководство начнется с настройки на сервере резервного копирования в первом разделе. Во втором разделе мы настроим основной сервер, а затем выполним резервное копирование, тестовое восстановление и покажем, как вручную удалить старые архивы резервных копий.

1 Настройка сервера резервного копирования

1.1 Установите borg и создайте нового пользователя borgbackup

На сервере резервного копирования (сервере, где должны храниться резервные копии) установите Borg в терминале root с помощью этой команды:

apt install borgbackup

Затем выберите пароль для пользователя borg, которого мы скоро создадим. (Обязательно иметь пароль для каждого пользователя, однако этот пароль почти никогда не будет использоваться, так как мы обычно будем подключаться к серверу резервного копирования с помощью SSH-ключа.) Если вы хотите сгенерировать случайный пароль из 64 символов, используйте эту команду:

< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-64};echo;

Скопируйте пароль для пользователя borg, показанный в буфер обмена, и сохраните его в безопасном месте, отличном от самого сервера.

Теперь мы создадим пользователя borgbackup:

adduser borgbackup

Когда вы получите вопрос о пароле, вставьте пароль, который вы скопировали ранее, нажмите Enter, а затем снова вставьте пароль и нажмите Enter. Не заполняйте ничего другого, просто нажмите Enter, чтобы ответить на следующие вопросы.

1.2 Сгенерируйте SSH-ключи для пользователя borgbackup

Теперь нам нужно стать новым пользователем с помощью su:

su borgbackup  
cd

Затем мы сгенерируем новую пару SSH-ключей для пользователя:

ssh-keygen -t ed25519

После нажатия Enter вы получите серию вопросов. Оставьте ответы пустыми, просто продолжайте нажимать Enter несколько раз, пока команда не завершится. Не устанавливайте никакую фразу-пароль для ключа, также нажмите Enter на этом вопросе.

1.3 Создайте каталог резервных копий

Теперь пришло время создать каталог, где будут храниться резервные копии, который в терминологии borg определяется как репозиторий borg. Мы просто назовем каталог borgbackup, но вы можете выбрать название в честь имени вашего основного сервера.

cd  
mkdir borgbackup  
chmod go-rwx borgbackup  
chmod u+rwx borgbackup

2 Настройка основного сервера и как он подключается к серверу резервного копирования

2.1 Установите Borg

Теперь мы переходим от работы на сервере резервного копирования к работе на основном сервере.

На основном сервере (сервере, с которого вы хотите делать резервные копии) установите Borg в терминале root с помощью этой команды:

apt install borgbackup

Позже нам понадобится внешний IP-адрес основного сервера (того, на котором мы находимся). Пожалуйста, скопируйте этот IP-адрес, чтобы он был у вас под рукой. Если вы не помните внешний IP-адрес основного сервера, выполните эту команду, чтобы отобразить его:

wget -qO- http://ipecho.net/plain | xargs echo

2.2 Разрешите основному серверу доступ к серверу резервного копирования

Команды, которые вы выполняете на основном сервере

Теперь мы подготовим аутентификацию SSH-ключа, чтобы можно было подключиться с основного сервера к серверу резервного копирования. Сначала используйте эту команду, чтобы показать открытый SSH-ключ пользователя root на основном сервере:

cat ~/.ssh/id_*.pub

Если у вас есть открытый SSH-ключ для root, вы должны увидеть этот ключ. Скопируйте ключ в буфер обмена, он вам понадобится позже для вставки в файл на сервере резервного копирования.

Если вы не видите отображаемый ключ, вам нужно сгенерировать пару ключей. Например, выполните эту команду в этом случае: ssh-keygen -t ed25519, а затем повторно нажмите Enter.

Теперь нам нужно сказать серверу резервного копирования разрешить доступ с основного сервера (где мы сейчас находимся) с помощью открытого SSH-ключа. Для этого введите эту команду, но сначала замените BACKUPHOSTNAME на имя вашего сервера резервного копирования:

ssh-copy-id -i ~/.ssh/id_*.pub borgbackup@BACKUPHOSTNAME

Подключитесь к серверу резервного копирования

Теперь вам нужно будет ввести пароль для пользователя borgbackup, которого вы создали на шаге 1.1. После этого должно быть возможно напрямую получить доступ к серверу резервного копирования как пользователь borgbackup без пароля. Теперь проверьте, что это возможно, введя эту команду, заменив BACKUPHOSTNAME на имя вашего сервера резервного копирования:

ssh borgbackup@BACKUPHOSTNAME

Команды, которые вы выполняете на сервере резервного копирования

Теперь мы еще больше усилим безопасность, ограничив доступ только с IP-адреса основного сервера, используя этот ключ.

Оставайтесь на сервере резервного копирования и выполните эту команду:

nano ~/.ssh/authorized_keys

Теперь вы должны увидеть длинную строку, которая начинается с ssh. Убедитесь, что курсор находится в начале файла. Добавьте следующие данные в ту же строку, перед ssh-ключом, но сначала замените SERVERIPADDRESS на IP-адрес вашего сервера (который вы исследовали в начале этого раздела):

from=
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.