7.7 Утилиты для архивирования, восстановления и копирования файлов в терминале

dd
tar
zip
unrar
rsync
p7zip

dd

Команда для копирования системного раздела диска в файл с условным названием /media/device/sda.bin:

dd if=/dev/sda1 of=/media/device/sda1.bin bs=4096

С учетом возможности перенаправления стандартного ввода/вывода команда dd позволяет применять для копирования алгоритмы сжатия или защитного преобразования:

dd if=/dev/sda1 bs=4096 | gzip > /media/device/sda1.bin.gz2

Команда для восстановления системного раздела диска (для этого потребуется загрузиться с отдельного диска, и примонтировать носитель, на котором был размещен файл с образом):

dd if=/media/mountpoint/sda1.bin of=/dev/sda1 bs=4096

tar

tar упаковка:

tar -cf jpg.tar *.jpg или указав каталог tar -cf jpg.tar ~/files

распаковка:

tar -xvf archive.tar в папку: tar -xvf archive.tar -C /path

gzip сжатие:

tar -cvzf files.tar.gz ~/files

распаковка:

tar -xzvf archive.tar.gz

bzip2 сжатие:

tar -cvjf files.tar.bz2 ~/files

распаковка:

tar -xjvf /path/to/archive.tar.bz2

в папку:

tar -xjvf archive.tar.bz2 -C /path/to/folder

Создание архива на удаленной машине

tar -cvpz ./ | ssh root@10.81.1.190 "( cat >  /home/user/ssh_backup.tar )"\

Синхронизация папок

rsync -avzh --progress /home/user/folder/ root@10.81.1.190:/home/user

zip

zip сжатие:

zip file_archive.zip -r /var/log/
zip file_archive.zip file1.txt file2.log

Распаковка:

unzip file_archive.zip
unzip file_archive.zip -d /tmp

unrar

Для работы с архивами rar установите пакет:
для РЕД ОС версии 7.1 или 7.2:

sudo yum install unrar

для РЕД ОС версии 7.3 и старше:

sudo dnf install unrar

Распаковка:

unrar x archive.rar
unrar x archive.rar ./folder

rsync

Rsync — это программное обеспечение с открытым исходным кодом, которое можно использовать для синхронизации файлов и папок с локального компьютера на удаленный и наоборот. Примечательная особенность Rsync — возможность передавать зашифрованные файлы с помощью SSH и SSL. Кроме того, здесь передача файлов выполняется в один поток, в отличие от других подобных программ, создающий отдельный поток для передачи каждого файла. Это увеличивает скорость и убирает дополнительные задержки, которые становятся проблемой при передаче большого количества маленьких файлов.
Основные параметры rsync:
-v — Выводить подробную информацию о процессе копирования;
-q — Минимум информации;
-c — Проверка контрольных сумм для файлов;
-a — Режим архивирования, когда сохраняются все атрибуты оригинальных файлов;
-R — Относительные пути;
-b — Создание резервной копии;
-u — Не перезаписывать более новые файлы;
-l — Копировать символьные ссылки;
-L — Копировать содержимое ссылок;
-H — Копировать жесткие ссылки;
-p — Сохранять права для файлов;
-g — Сохранять группу;
-t — Сохранять время модификации;
-x — Работать только в этой файловой системе;
-e — Использовать другой транспорт, например, ssh;
-z — Сжимать файлы перед передачей;
--delete — Удалять файлы которых нет в источнике;
--exclude — Исключить файлы по шаблону;
--recursive — Перебирать директории рекурсивно;
--no-recursive — Отключить рекурсию;
--progress — Выводить прогресс передачи файла;
--stat — Показать статистику передачи;
--version — Версия утилиты.
Rsync позволяет синхронизировать файлы и папки в пределах одной машины. Давайте сначала рассмотрим использование rsync для синхронизации файла на локальном компьютере:

rsync -zvh file /tmp/backups/

Синхронизация папок rsync выполняется так же, как и файлов:

rsync -zvh /var/account/* /tmp/backups/

Если вы хотите, чтобы все атрибуты файлов, такие, как дата изменения и создания сохранялись, необходимо использовать опцию -a:

rsync -azvh /var/account/* /tmp/backups/

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

rsync -avz /home/files root@10.81.1.190:/home/user

По умолчанию rsync попытается использовать транспорт ssh. Если вы хотите использовать ранее созданный сервер rsync, нужно указать это явно:

rsync -avz /home/files rsync://10.81.1.190:/share

Точно также можно синхронизировать файлы с rsync из удаленного сервера:

rsync -avz root@10.81.1.190:/home/ /home/files/

p7zip

7-Zip — свободный файловый архиватор с высокой степенью сжатия данных благодаря формату 7z с компрессией LZMA. Кроме формата 7z поддерживает также ZIP, GZIP, BZIP2 и TAR. Может распаковать множество других форматов, например CAB, CHM, DEB, ISO, LZMA, MSI, RAR и другие. Формат 7z достаточно популярен среди архивов, поэтому имеет смысл иметь поддержку 7z в системе, а также создавать свои архивы в виде 7z формата, ибо сжатие с помощью 7z на 30-50% лучше, чем сжатие с помощью ZIP.
Основные параметры:
a – Создание архива, добавить файлы в архив
b — Бенчмарк
d — Удалить файлы из архива
e — Извлечь файлы из архива (без использования имён директорий)
l — Список содержимого архива
t — Тестировать архив на целостность
u — Обновить файлы в архиве
x — Извлечь файлы с полными путями

Для упаковки в архив archive.7z файлов file, file1, file2 в директории /home/user/files, выполните команду:

7z a archive.7z file file1 file2

Для упаковки в архив archive.7z всего содержимого директории /home/user/files, выполните команду(в текущем каталоге):

7z a archive.7z

Файл archive.7z будет создаваться в текущей директории. Можно использовать абсолютный/относительный путь, например:

7z a /home/user/archive.7z

Опция -t определяет формат архива на выходе. Например -t7z устанавливает 7z формат (он же используется по умолчанию). Также можно определить иной формат архива: zip, gzip, bzip2 или tar.
Распаковка архива в текущую директорию:

7z x archive.7z

Чтобы распаковать архив в определенную директорию используется опция -o, за которой без пробела указывается путь до директории:

7z x archive.7z -o./files

Для просмотра содержимого архива используется команда:

7z l archive.7z

Чтобы проверить целостность архива (проверить, что архив «не битый») используется команда:

7z t archive.7z

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email