Полный цикл в digital

Копирование командой tar в Linux

Синтаксис команд для создания и распаковки архива практически не отличается (в том числе с утилитами сжатия bzip2 или gzip).

Синтаксис для содания копии:

tar опции архив.tar файлы_для_архивации

Синтаксис для распаковки копии:

tar опции архив.tar

Функции, которые может выполнять команда:

Короткий формат функции Длинный формат Описание
-A --concatenate Присоединить существующий архив к другому
-c --create Создать новый архив
-d --diff Проверить различие между архивами
- --delete Удалить из существующего архива файл
-r --append Присоединить файлы к концу архива
-t --list Сформировать список содержимого архива
-u --update Обновить архив более новыми файлами с тем же именем
-x --extract Извлечь файлы из архива

При определении каждой функции используются параметры, которые регламентируют выполнение конкретных операций с tar-архивом:

Короткий формат параметра Длинный формат Описание
-C dir --directory=DIR Сменить директорию перед выполнением операции на dir
-f file --file Вывести результат в файл (или на устройство) file
-j --bzip2 Перенаправить вывод в команду bzip2
-p --same-permissions Сохранить все права доступа к файлу
-v --verbose Выводить подробную информацию процесса
- --totals Выводить итоговую информацию завершенного процесса
-z --gzip Перенаправить вывод в команду gzip

Создание архива tar

С помощью следующей команды создается архив archive.tar с подробным выводом информации, включающий файлы file1, file2, file3:

tar --totals --create --verbose --file archive.tar file1 file2 file3

Но длинные опции и параметры можно заменить (при возможности) однобуквенными значениями:

tar --totals -cvf archive.tar file1 file2 file3

Просмотр содержимого архива

Вывод содержимого архива, не распаковывая:

tar -tf archive.tar

Распаковка архива

Распаковывает архив test.tar с выводом файлов на экран:

tar -xvf archive.tar

Чтобы сделать это в другой каталог, можно воспользоваться параметром -C:

tar -C "Test" -xvf archive.tar

Создание сжатого архива tar

Следует помнить, что tar только создаёт архив, но не сжимает. Для этого используются упомянутые компрессорные утилиты bzip2 и gzip. Файлы, сжатые с их помощью, имеют соответствующие расширения .tar.bz2 и .tar.gz. Чтобы создать сжатый архив с помощью bzip2, введите:

tar -cjvf archive.tar.bz2 file1 file2 file3

Синтаксис для gzip отличается одной буквой в параметрах, и меняется окончание расширения архива:

tar -czvf archive.tar.gz file1 file2 file3

Распаковка сжатого архива

При распаковке tar-архивов со сжатием следует указывать соответствующую опцию.

Распаковка архива с сжатием bzip2:

tar -C "Test" -xjvf arhive.tar.bz2

Распаковка архива с сжатием gzip:

tar -xzvf archive.tar.gz

Создание резервной копии сервера

Чтобы сделать бекап вашей системы используйте следующую команду:

tar -cvpzf <имя_файла>.tar.gz --exclude=имя_файла --one-file-system целевой_каталог

Например:

tar -cvpzf backup.tar.gz --exclude=/root/backup.tar.gz --one-file-system /
  • c создать новый резервный архив
  • v подробный режим, при котором выводится информация о текущих действиях
  • p сохранить права доступа на файлы
  • z сжать с помощью утилиты gzip
  • f <имя_файла> полное имя файла с резервной копией
  • --exclude=<имя_файла> имена файлов или каталогов, которые необходимо исключить из резервной копии. Во избежании ошибок обязательно нужно исключить файл с резервной копией
  • --one-file-system создать копию только одной файловой системы, т.е. если у вас есть смонтированные носители с другими файловыми системами, то они не будут включены в копию, их необходимо резервировать отдельно или использовать дополнительные опции
  • / в конце нужно указать каталог, запасную копию которого необходимо создать

Восстановление резервной копии сервера

Проверим достаточно ли свободного пространства:

sudo df -h

Если сервер другой с чистой системой, создадим директорию и скопируем в неё копию директории /boot с загрузчиком и файл /etc/fstab:

sudo mkdir /OLD
sudo cp -R /boot/ /OLD/
sudo cp /etc/fstab /OLD/

Для восстановления из резервной копий вашей системы используйте следующую команду:

sudo tar -xvpzf <имя_файла> -C <имя_каталога> --numeric-owner

Например:

sudo tar -xvpzf /OLD/backup.tar.gz -C / --numeric-owner
  • f <имя_файла> полное имя файла с резервной копией
  • -C <имя_каталога> каталог в который произойдет восстановление
  • --numeric-owner опция позволяет восстановить пользователей файлов по числовому дескриптору, а не по имени, во избежании ошибок

Возвращаем директорию /boot и файл fstab:

sudo cp -R /OLD/boot/ /boot/
sudo cp /OLD/fstab /etc/fstab

Убедимся что копирование прошло успешно и в файлах /boot/grub/grub.cfg и /etc/fstab указан верный UUID, посмотреть UUID разделов в текущей системе можно командой:

sudo  lsblk -o NAME,UUID

Смотрим UUID в файле /boot/grub/grub.cfg:

nano /boot/grub/grub.cfg

Смотрим UUID в файле /etc/fstab:

nano /etc/fstab

Перезагружаем систему:

sudo reboot
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг