Можно ли клонировать корневую файловую систему работающего сервера через ssh?

Можно ли клонировать корневую файловую систему работающего сервера через ssh?

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

Как мне это сделать? Можно ли попробовать скопировать все? Потому что у меня были проблемы с каталогом root.

Я не хочу проводить много экспериментов еще и потому, что там есть важные конфигурации.

Я пытаюсь сделать все это через ssh. Как мне сделать эту резервную копию?

Есть идеи?

решение1

Если вы хотите сделать резервную копию всех данных, то вы можете войти на сервер через ssh, а затем просто скопировать все файлы. Например, с помощью scpили с помощью rsync.

Вы даже можете скопировать все, включая файлы ОС, если используете
rsync -zvr --exclude /dev/ / destination_computer_name_or_ip

-r: Рекурсивный
-v: подробный
-z: Включает сжатие

Обратите внимание, что это не скопирует загрузочную запись. Для этого вам нужно скопировать весь диск, и вы хотите сделать это, когда диск не смонтирован. (Читайте: Выключите машину, которую вы хотите полностью_полным_резервным копированием, и загрузитесь с 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

dd будет читать с диска. Весь диск, включая загрузочные сектора и пустые сектора.
В примере мы настроили его для первого диска, как указано sdа. Настройте sdb для второго диска, sdc для третьего диска и т. д. и т. п.

Мы выводим данные на стандартный вывод, обозначенный -.

bs=1M устанавливает размер блока. Вам это не нужно, но без этого будет много мелких чтений и огромные накладные расходы. Установка этого значения больше 512 байт или 4k ускорит процесс.

Затем мы передаем |вывод через gzip для сжатия. Это предполагает, что ваш процессор будет намного быстрее, чем ваша сеть. Вы можете пропустить gzip на источнике и gunzip на месте назначения, в этом случае вы отправите необработанные данные, а не сжатые данные по сети.

Последний — это ncили netcat. Он принимает входные данные из предыдущего канала и помещает их в сеть, в направлении порта 4242 на компьютере с именемназвание_пункта_назначения.


На принимающей стороне мы делаем обратное:

Прослушивание через nc -l на предмет ввода на порту 4242,

распаковать gzip, если необходимо,

И наконец запишите это в файл.


Важная заметка:

Вы можете сделать это во время загрузки с диска, резервную копию которого вы делаете. Но нет гарантии, что файловая система останется прежней во время резервного копирования. Поэтому пробуйте это только в том случае, если вы можете загрузиться с диска только для чтения. (например, используя только RAM-диск)

решение2

то, что я бы сделал, очень похоже наХеннес

Я бы создал файл ISO, скачал его, записал на диск или USB-накопитель и загрузил копию в Dropbox на всякий случай.

mkisofs -V LABEL -r DIRECTORY | gzip > backup.iso.gz

Мой друг размещает свои сервера на Rackspace, и он сказал мне, что пользователи Rackspace могут автоматически создавать ISO-файлы, и если они мигрируют на новый сервер, они могут сохранить старую резервную копию на старом облачном сервере, используя rsyncили что-то еще, и отключить его, они все равно будут платить, но это дешево.

Я не знаю, предлагает ли ваш хостинг автоматизированную систему резервного копирования или вы платите за поддержку. Стоит спросить их и, возможно, позволить им сделать это, если вы делаете это впервые.

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