В инструкции описан процесс создания резервной копии системы с операционной системой Linux с помощью утилиты dd и tar.
Что это такое?
Резервное копирование (backup) — создание запасных копий серверов, может быть настроено по регулярному расписанию, а может выполняться однократно в удобный для пользователя момент. Преимущество в использовании утилит tar и dd - они являются предустановленными и просты в использовании.
Создание резервной копии с помощью dd
Команда dd копирует файл, преобразуя в процессе формат данных, в соответствии с указанными операндами. Программа генерирует необработанные файлы, которые могут быть прочитаны многими другими программами. dd является самой старой утилитой для создания образов и не обладает некоторыми полезными опциями, но при этом все еще используется.
Чтобы сделать запасную копию вашего жесткого диска используйте следующую команду:
dd if=<исходный_диск> of=<полное_имя_копии> bs=8M conv=sync,noerror
Например:
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror
- if=/dev/sda - копируем весь жесткий диск sda;
- of=/mnt/backup/sda.img - копируем в /mnt/backup/sda.img, где каталог /mnt/backup точка монтирования диска, на котором будет содержаться образ;
- bs=8M - задаем размер кэша жесткого диска для ускорения процедуры копирования (иначе данные будут сбрасываться малыми порциями по 512 байт);
- conv=sync,noerror - указываем dd на необходимость копирования по типу бит-в-бит с игнорированием ошибок чтения.
Примечание: на целевом диске должно быть достаточно места, т.е. не менее того объема, который занимает исходный диск.
Восстановление из резервной копии с помощью dd
Чтобы сделать восстановление вашего жесткого диска из резервной копии используйте следующую команду:
dd if=<полное_имя_копии> of=<целевой_диск> bs=8M conv=sync,noerror
Например:
dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror
Создание резервной копии с помощью tar
Команда tar в Linux часто используется для создания архивов .tar.gz или .tgz, также называемых «tarballs». Эта команда имеет большое количество опций, для работы с архивами, но также с помощью нее можно создать резервную копию системы.
Чтобы сделать бекап вашей системы используйте следующую команду:
tar -cvpzf <имя_файла>.tar.gz --exclude=<имя_файла> --one-file-system <целевой_каталог>
Например:
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
- c - создать новый резервный архив;
- v - подробный режим, при котором выводится информация о текущих действиях;
- p - сохранить права доступа на файлы;
- z - сжать с помощью утилиты gzip;
- f <имя_файла> - полное имя файла с резервной копией.
- --exclude=<имя_файла> - имена файлов или каталогов, которые необходимо исключить из резервной копии.
Важно: во избежании ошибок обязательно нужно исключить файл с резервной копией. - --one-file-system - создать копию только одной файловой системы, т.е. если у вас есть смонтированные носители с другими файловыми системами, то они не будут включены в копию, их необходимо резервировать отдельно или использовать дополнительные опции.
- / - в конце нужно указать каталог, запасную копию которого необходимо создать.
Восстановление из резервной копии с помощью tar
Для восстановления из резервной копий вашей системы используйте следующую команду:
sudo tar -xvpzf <имя_файла> -C <имя_каталога> --numeric-owner
Например:
sudo tar -xvpzf /path/to/backup.tar.gz -C /media/whatever --numeric-owner
- f <имя_файла> - полное имя файла с резервной копией;
- -C <имя_каталога> - каталог в который произойдет восстановление;
- --numeric-owner - опция позволяет восстановить пользователей файлов по числовому дескриптору, а не по имени, во избежании ошибок.
Создавать резервную копию очень удобно по настроенному расписанию, о том как настроить планировщик Linux Cron читайте в нашей статье. Это позволит автоматизировать создание копий сервера или данных.
Примечание:
В рамках нашего сервиса есть услуга резервного копирования серверов, копирование выполняется 1 раз в сутки на территориально удаленный дисковый массив, при этом вам не нужно самостоятельно выполнять настройки резервирования, а сохранность копии не зависит от работоспособности сервера.