Можно ли клонировать корневую файловую систему работающего сервера через ssh?
Я хочу сделать резервную копию работающего сервера. Все файлы конфигурации и все, не выключая его.
Как я могу сделать это? Можно ли попытаться скопировать все это? Потому что у меня были проблемы с root
каталог.
Я не хочу много экспериментировать, потому что он имеет важные конфигурации.
Я пытаюсь сделать все это через ssh
, Как я могу сделать эту резервную копию?
Есть идеи?
2 ответа
Если вы хотите сделать резервную копию всех данных, вы можете войти на сервер через ssh, а затем просто скопировать все файлы. Например, с scp
или с rsync
,
Вы даже можете скопировать все, включая файлы ОС, если вы используетеrsync -zvr --exclude /dev/ / destination_computer_name_or_ip
-r: рекурсивный
-v: многословный
-z: включает сжатие
Обратите внимание, что это не будет копировать загрузочную запись. Для этого вы хотите скопировать весь диск, и вы хотите сделать это, когда диск не смонтирован. (Читайте: выключите машину, которую вы хотите utterly_full_backup, и загрузитесь с liveCD или загрузитесь с другого раздела.)
Затем используйте dd, чтобы прочитать весь диск.
Пример кода:
ПК для хранения резервной копии на:nc -l 4242 | gunzip | cat > my_full_disk_backup_of_PC_named_foo
И на ПК для резервного копирования:dd if=/dev/sda of=- bs=1M | gzip | nc -p 4242 name_of_the_destination
дд будет читать с диска. Весь диск, включая загрузочные и пустые сектора.
В примере мы настроили его для первого диска, как указано sda. Настройте sdb для второго диска, sdc для третьего диска и т. Д. И т. Д.
Мы выводим на стандартный вывод, обозначенный -
,
bs=1M устанавливает размер блока. Вам это не нужно, но без него будет много небольших операций чтения и огромных накладных расходов. Установка этого значения в 512 байт или 4 Кб ускорит процесс.
Далее мы трубу |
вывод, хотя gzip, чтобы сжать его. Это предполагает, что ваш процессор будет намного быстрее, чем ваша сеть. Вы можете пропустить gzip на источнике и gunzip на месте назначения, и в этом случае вы будете отправлять необработанные данные, а не сжатые данные по сети.
Последний nc
или неткат. Он принимает входные данные из предыдущего канала и помещает его в сеть по направлению к порту 4242 на компьютере с именем name_of_the_destination.
На приемном конце мы делаем обратное:
Прослушивание через nc -l для ввода через порт 4242,
распакуйте, если необходимо,
И, наконец, записать его в файл.
Важное примечание:
Вы можете сделать это во время загрузки с диска, для которого вы создаете резервную копию. Но нет никакой гарантии, что файловая система останется неизменной во время резервного копирования. Таким образом, попробуйте только если вы можете загружаться с диска только для чтения. (например, просто с помощью оперативного диска)
То , что я бы сделал, очень похоже на Хеннес
Я хотел бы создать ISO-файл, скачать его, положить его на диск или USB и загрузить копию в Dropbox на всякий случай.
mkisofs -V LABEL -r DIRECTORY | gzip > backup.iso.gz
Мой друг работает на RackSpace, он сказал мне, что пользователи RackSpace имеют возможность автоматически создавать ISO-файлы, и если они мигрируют на новый сервер, они могут сохранить старую резервную копию на старом облачном сервере, используя rsync
или что-то еще и закрыли, они все еще платят, но это дешево.
Я не знаю, предлагает ли ваш хостинг автоматизированную систему резервного копирования или вы платите за поддержку. Стоит спросить их и, возможно, позволить им сделать это, если вы в первый раз.