Моя ситуация:
У меня есть VPS (ubuntu) с 2 веб-сайтами на нем. Так как я новичок в VPS (недавно я переехал с общего хостинга), я потратил почти 2 недели на изучение того, как настроить мой VPS для запуска всех веб-сайтов так, как я хотел. Я сделал много ошибок при настройке VPS, поэтому я учился - переустанавливая / настраивая / ошибаясь / переустанавливая / настраивая и т. д.
Теперь все в порядке, VPS работает, все необходимые мне сервисы также работают, много уроков извлечено - ВСЕ ОК.
Вопросы:
Какой самый простой способ сделать полную резервную копию VPS?
Могу ли я сделать резервную копию VPS просто с помощью WinSCP? Я имею в виду подключиться к корневой папке (/) и скачать все файлы VPS оттуда?
Если да, то как мне его восстановить позже, если возникнет необходимость переустанавливать с нуля весь 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