LINUX.ORG.RU
ФорумAdmin

tar и все такое

 ,


0

2

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

Пробовал cpio на fedora 20, там с синтакисом проще, но файлы больше 4G нельзя. Так и хочеться спросить разработчиков «Господи, почему?».

Не знаю, насколько это сложно, можно сделать архивирование в два потока (два файла), в один пишутся данные файлов уже «обработанные», например, компрессорами, криптовальщиками. В другой, метаданные этих файлов (имя, размер, время, права доступа, адрес начала/конца в потоке данных, метод сжатия..). Потом оба файла объединяются в один.

Такое, я думаю, даже скриптами можно написать.

На выходе:
- можно моментально получить список файлов, не так долго, как это, например, в 20 гиговом архиве домашней папки *.tar.gz;
- так же быстро можно извлечь файл из такого архива;
- при необходимости добавить к архиву можно дописывать данные в конец;
- при необходимости удалить файл, что наврядли бывает часто необходимо именно для архивов, например, по ошибке попал кеш. Можно пересобрать файл данных без удаленных.

Естественно, при всех изменениях в архиве, обновлять метаданные.

Перемещено beastie из development

KISS же. По сабжу, чем 7z не подходит?

buddhist ★★★★★
()

Формат архива: 7z, компрессор: BZip2. Рулят по масштабируемости на текущий момент - по возможному размеру архива и количеству задействованных потоков при упаковке и _распаковке_.

С остальным куча проблем, с этими меньше всего. Когда наконец допилят многопоточную распаковку для lzma2 - компрессором можно будет использовать его.

Deleted
()
Ответ на: комментарий от pathfinder

Статью прочитал, завтра поэкспериментирую. Хорошо, что есть варианты.

barberry ★★
() автор топика
Ответ на: комментарий от Deleted

7z я не очень доверяю, бывает он просто реально «слетает с катушек» при использовании lzma2 (хочеться чтоб покруче было). Т.е. pv показывает как ему tar передает данные, а файл при этом доходит до 8М и больше не увеличивается. Сначала, я им постоянно пробовал пользоваться, много раз подбирал параметры: количество потоков, оптимальный уровень сжатия, настройки для памяти, читал что другие ставят. Но потом успокоился и стал делать tar.gz.

И еще 7z и bzip2 «не уважают» компьютер, на котором запущены. Комп просто «парализует»: и диск, и графику, и клаву, и мышь.

У меня для них в /etc/rc.d/rc.local есть несколько строчек:

cpulimit -e tar -l 1 > /dev/null 2> /dev/null &
cpulimit -e 7z -l 70 > /dev/null 2> /dev/null &
cpulimit -e bzip2 -l 30 > /dev/null 2> /dev/null &
cpulimit -e file-roller -l 7 > /dev/null 2> /dev/null &

Цифры подобранны экспериментально, пока не стало комфортно.

Получается, конечно, несколько медленнее, но куллер теперь не стонет «мууу..мууу». Можно бакапить систему и домашнюю папку со снапшотов lvm и параллельно заниматься своими делами.

barberry ★★
() автор топика
Ответ на: комментарий от mky

это, кстати, реальная подстава тоже - атрибуты. Напомнило мне, чем 7z формат не идеален.

Deleted
()
Ответ на: комментарий от barberry

И еще 7z и bzip2 «не уважают» компьютер, на котором запущены. Комп просто «парализует»: и диск, и графику, и клаву, и мышь.

лол. у тебя с системой проблемы

anonymous
()
Ответ на: комментарий от anonymous

Он кстати хорош. Но только как компрессор. Пожалуй для единичных файлов подходит лучше, чем чужеродный (==виндовозный, вы видели его исходники?) 7z.

Но контейнер то нужен всеравно. tar - слишком тормозной, 7z не сохраняет атрибуты. Какие то еще есть? Я остановился на 7z.

Deleted
()

Так в чем проблема tar?

Прочитал и ничего не понял. Скорость не устраивает?

This makes tar badly suited for things such as backups and other situations where precise reproduction of the input data matters.

Примеры в студию.

И вообще, если такие недовольные и патчить tar под себя это непосильная задача, то купите winrar.

можно моментально получить список файлов

tar zcvpf ... > files.txt — сложно догадаться?

gh0stwizard ★★★★★
()

squashfs же. Хочешь - монтируй, хочешь - распаковывай.

deadNightTiger ★★★★★
()

Архив на 4G? Вы там совсем с пандалыку съехали? ;)

Не, ну честно. Зачем? Не помню за свою жизнь надобности в архиве более чем на 20M. Для всего остального есть FS и куча других способов заархивировать/передать данные.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

Может потому что мы с вами живем в разных мирах, у меня архивы в среднем файлов на 40-60G, меньше не бывает. Для остального tar не нужен, обычного zip хватает.

barberry ★★
() автор топика
Ответ на: комментарий от mky

Само собой не голый 7z, а tar перед ним.

barberry ★★
() автор топика
Ответ на: комментарий от barberry

у меня архивы в среднем файлов на 40-60G, меньше не бывает

Я просто боюсь представить что там у вас.

Дамп DB? Текст — жмётся на ура. gzip достаточно. Сырцы? Тоже текст.

Картинки? Не жмутся и жать не надо, в лучшем случае просто собрать в кучу.

Фильмы? Тоже не жмётся, да и кто ж в наше то время этот мусор собирает?

Для всего остального plain-tar за уши хватает.

beastie ★★★★★
()
Ответ на: комментарий от anonymous

У меня проц Intel i5 3.61GHz, 8GB RAM, HDD WD SATA3, куллер большой 600-7200rpm, OS Fedora 20. Проблем, кроме архивторов не испытываю.

А то, что не уважают, так вот пример. Запустил создание архива zip на своей андроид-лопате. Он мне чуть устройство не спалил, вовремя я почуял что греется и вытащил аккумулятор. Теперь температура процессора у меня всегда отображается в строке состояния.

barberry ★★
() автор топика
Ответ на: комментарий от beastie

Виртуальные машины, есть для тестов проверить как работает, а есть по работе для винды, которой любого пространства мало. Пока с виндой не расстанусь окончательно с ней и всем что вокруг нее, придется ее у себя держать.

barberry ★★
() автор топика
Ответ на: комментарий от pathfinder

Сегодня попробовал что-нибудь им поархивировать. Как я понял если архив размещается не на примонтированной файловой системе, а, например по ssh, то там нужны свои уловки. И еще одно: не понял почему в конце в консоли появилась надпись, что процесс такой-то Stopped. И вместо того, чтобы завершится как процесс, остался висеть в памяти.

barberry ★★
() автор топика
Ответ на: комментарий от beastie

В virtualbox сделать sdelete -z c:\ и он жмется в несколько раз.

barberry ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.