Самый простой способ резервного копирования VPS

Самый простой способ резервного копирования VPS

Моя ситуация:

У меня есть VPS (ubuntu) с 2 веб-сайтами на нем. Так как я новичок в VPS (недавно я переехал с общего хостинга), я потратил почти 2 недели на изучение того, как настроить мой VPS для запуска всех веб-сайтов так, как я хотел. Я сделал много ошибок при настройке VPS, поэтому я учился - переустанавливая / настраивая / ошибаясь / переустанавливая / настраивая и т. д.

Теперь все в порядке, VPS работает, все необходимые мне сервисы также работают, много уроков извлечено - ВСЕ ОК.

Вопросы:

  1. Какой самый простой способ сделать полную резервную копию VPS?

  2. Могу ли я сделать резервную копию VPS просто с помощью WinSCP? Я имею в виду подключиться к корневой папке (/) и скачать все файлы VPS оттуда?

  3. Если да, то как мне его восстановить позже, если возникнет необходимость переустанавливать с нуля весь VPS?

Дополнительная информация о моей ситуации:

  • Резервное копирование баз данных будет выполняться вручную (возможно через phpmyadmin)
  • в моей панели администратора VPS (SolusVM) нет инструмента резервного копирования
  • Я не использую GUI cpanel/directadmin/virtualmin и т. д., только консоль.

решение1

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

Теперь загрузка большого количества маленьких файлов через удаленное соединение на самом деле довольно медленная из-за больших накладных расходов. Это более существенно, если вы физически находитесь далеко от сервера. Обычно я предпочитаю объединять все в один tarархив, а затем сжимать его для меньшего размера.

Команда для этого tar cpzf filename.tar.gz /(где /означает рекурсивное резервное копирование всего, начиная с корня). Вы можете захотетьисключить существующие файлы резервных копий- если вы планируете хранить много резервных копий, будет проще поместить их все в один каталог и исключить этот каталог. Затем вам просто нужно скачать этот файл любым удобным для вас способом.

Восстановление будет с командой tar xpf filename.tarнаходясь в корневом каталоге. Вы также можетеукажите целевой каталогс -C.

решение2

Я ответил наидентичный вопросна serverfault, и хотя он охватывает некоторые из тех же вопросов, что и ответ боба, я использую немного другие инструменты и немного другой фокус. Я предлагаю создать список пакетов и использовать rsync (так как он может поддерживать разрешения и довольно эффективен при передаче файлов).

Если все остальное не помогает, есть старый добрый способ — используйте dpkg --get-selections для выгрузки списка установленных пакетов и установите их с помощью dpkg --set-selections. Создайте тех же пользователей, что и в исходной системе, если необходимо — cat /etc/passwd должен вывести их список, и вы можете проверить с помощью diff, идентичны ли два списка.

Затем используйте rsync, чтобы дублировать папку /etc/ для настроек, различные папки /home/ для пользователей (и проверьте разрешения здесь) и другие папки, такие как /var/www/. Протестируйте, убедитесь, что все на месте, и все готово. Мне это занимает меньше времени, чем настройка нового сервера.

Иногда старые, простые способы являются лучшими. Если вы делаете это вручную, просто напишите скрипт, который автоматически реплицирует это с вашего текущего сервера.

решение3

Используйте rsync для легкого инкрементального резервного копирования. Вы можете сделать это из командной строки или написать более сложные сценарии.

Пример, с которого можно начать:

$ options="--stats -aHh --delete"; echo == RUNNING with options: $options; time rsync -e ssh $options root@your-server-ip-or-hostname:/ /destination/my-server-backup --exclude /proc --exclude /dev --exclude /sys --exclude /run/udev

Больше примеров вы можете найти в написанном мной скрипте, который изначально был предназначен для Windows, но его можно напрямую применить и к Linux:https://github.com/paravz/windows-rsync-backup

Связанный контент