Утилита для архивации файлов/каталогов.
Никогда не перемещает и не удаляет какие бы то ни было файлы, только архивные копии.
Права на файлы передаются создающему архив.
Архивирование текущей директории. Указание точки вместо звездочки, добавит даже скрытые файлы.
tar -cvf myarhive.tar * # Текущая директория за исключением указанных папок, бекап тек директории tar -czvf backups/previous_version.tar.gz --exclude={log,backups} * # или так tar -czvf old_instance.tar.gz --exclude="*/log" --exclude="*/backups" * # Просмотр содержимого архива tar -tvf my_arhive.tar.gz
Архивирование и сжатие указанных файлов.
# Архивирование указанных файлов и папок из указанной директории # добавит в архив только "folder1 folder2 file1" из папки "folder_store" tar -czf my_arch.tar.gz -C folder_store folder1 folder2 file1 # По шаблону tar -czvf myarhive.tar.gz /home/user/*.mp4
Перенаправление потока. Можно сразу отправить архив по сети, без промежуточного сохранения.
# tar czvf - ~/sourcedir/ | ssh user@host "cat > ~/myarhive.tar.gz"
Архивация всей системы. Исключая временные разделы и папку /home/andy/, включая /var/ и /usr/.
# tar czvf - --one-file-system / /usr /var --exclude=/home/andy/ | ssh user@host "cat > ~/arh.tar.gz"
Поиск и архивация. Для поиска используем команду find.
# find /var/dir/ -iname "*.mp4" -exec tar -rvf arh.tar {} \;
Разархивировать в указанное место
# tar -xzvf name-arh.tar.gz -C /.../exist-folder
С помощью команды split можно разделять файлы (архивы) на части, не более указанного размера.
Аргумент -b позволяет указать размер.
Разбиение архива на части.
# split -b 1G myarhive.tar.gz "myarhive.tar.gz.part"
Соединить архив обратно.
# cat myarhive.tar.gz.part* > myarhive.tar.gz
(unzip -l ${archiveName}.zip | grep -q *-cyclonedx-distrib.json && unzip ${archiveName}.zip *-cyclonedx-distrib.json -d ../sboms/) || [ \\\$? -eq 1 ]
Создание (побайтовых) образов разделов.
Создаем архив диска
# dd if=/dev/sda of=~/sdadisk.img
Восстановление из образа
# dd if=~/sdadisk.img of=/dev/sda
Форматирование раздела метод с перезаписыванием (if=/dev/random - случайными символами)
# dd if=/dev/zero of=/dev/sda1
Как и dd, это утилита для побайтового копирования дисков/разделов, но в отличии от первой, достаточно успешно копирует данные с поврежденных дисков.
Копировать лучше с не примонтированного диска или в режиме ro. Запросто может добить диск (уничтожить данные), при допущении ошибок в работе с утилитой.
# ddrescue [options] infile outfile [mapfile=logfile]
Восстановление всего диска
# ddrescue -fn /dev/sdb /dev/sdc ~/disk.log
Произошла ошибка на байте 12350000, переподключили диск, ребутнули и продолжили
# ddrescue -fn -i 12350000 /dev/sdb /dev/sdc ~/disk.log