LINUX.ORG.RU

Сообщения Oskaria

 

Не получается разбить tar архив на лету, при использовании большого количества опций

Форум — General

Смысл вот в чем: есть довольно старый скрипт, который делает архив, собирая кучу всего, после чего передает этот архив на удаленный FTP. Все счастливы, все хорошо. Но наступило время, когда вес архива перевалил за 2Gb и по кучи причин заливаться он перестал. Встала задача разбить его на части, но - split работать нормально не хочет.

Проблема в том, что на выходе должны быть файлы:

archive.tar   -- первые 2Гб
archive.tar.0 -- следующие 2Гб
archive.tar.1 -- следующие 2Гб

Это важно для автоматики, на удаленной машине. split нарезает файл, называя первый *.0, поэтому выход - резать на лету и тут начинаются проблемы.

Команда на архивацию:

tar -cf /var/www/html/backup/20201211_155559-files.tar -C /var/www/html/files_exchange --exclude=cache --exclude=core/backup --exclude=stack_cache --exclude=tmp . | split -d -a 1 -b 2G

которая, собственно, ничего не нарезает - создается один большой файл. Единственное, как получается - если убрать exclude, убрать ключ -C, убрать точку в конце и заменить -cf на просто cf, тогда да, но архивируется весь мусор, в архив включаются абсолютные пути, создается он не там, одним словом всё не то)

Ну и вопрос - split вообще способен нарезать архив на лету, в случае использования большого количества параметров у tar? Или я просто где-то накосячил в синтаксисе? Очень надеюсь на помощь гуру)

ЗЫ: смотрел про параметр -M у tar, но он ждет от пользователя действий и работает немного не так, как надо. И самое обидное - нельзя юзать другие утилиты, типа 7zip, потому что решение распространяемое, и не везде есть возможность доставить пакеты, если их нет.

 ,

Oskaria
()

RSS подписка на новые темы