LINUX.ORG.RU
ФорумAdmin

Как создать TAR архив без промежуточного файла

 , , ,


0

2

Есть раздел 100Gb, в нем есть папка /backup размер которой ~80Gb. Хочу из нее сделать TAR архив без сжатия

tar -cf all.tar /backup

и отправить его по ftp на другой сервер. Проблема заключается в том, что all.tar тоже примерно 80 гигов и не хватает места на разделе. Как бы создавать архив «на лету», без копирования данных и сразу отправлять поток на сервер? Можно конечно по одному файлу слать по ftp, но хочу для простоты помещать их сначала в контейнер

★★★★

Если вам действительно нужно именно tar-ом на другой сервер, то не используйте ключ «f», - тогда он будет скидывать результирующий архив в стандартный вывод. Его уже отправить куда-либо - несложно.

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

но несколько дней назад так образ диска с пентиума 133 сливал

Это фигня. Мне вот приходилось сливать с ленточки, записаной на ЕС-ке, через BSD unix на СМке как конроллер ленточки на писюк, через компорт из кодировки ebcdic xmodem-ом.

А если по теме, там чего там не работать то, будет конечно.

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

Чуть дополню. Ну собстно tar изначально на это и заточен :) Это сейчас появились ключики -z -j и так далее, а раньше перенаправляли на компрессор :)

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

Ну собстно tar изначально на это и заточен

Нет. tar заточен передавать в одном потоке вначале ровно один блок метаинформацию о файле и потом сам файл, опять же с дополненным до целого последний блок. Для не ленточки это не надо. Ибо если у вас есть возможность передать файл, хоть сжатый, хоть нет, то метаинформация — отдельная сущность, может она вам вовсе и не нужна для переноса. Так всякие kermit, *modem-ы передавали только размер и то для собственных нужд.

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

мне чуть-чуть повезло, иначе пришлось бы и 516 мегабайтный винт по ком-порту сливать, на скорости 115200 :)

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

слить по фтп я знаю как - ftp -o - | экшн

а вот залить... даже не вкурсе. если нет ssh, то netcat (nc)

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

Если не смущают тормоза, есть curlftpfs. Монтируешь ftp-сервер в директорию и усё.

Pinkbyte ★★★★★
()
Ответ на: комментарий от gobot
rsync -a --info=progress2 --delete /path/to/backup/ username@remote-host-name:/path/to/remote/directory/

Так вы получите копию содержимого вашей директории сразу на удаленном сервере, в нужной директории. Если использовать tar его на другой стороне надо распаковывать, зачем?

параметр --delete приведет удаленную директорию в полное соответствие с содержимым локальной.

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

Удаление будет после создания тара, один хер место займет

gobot ★★★★
() автор топика
tar -cf - /backup | zstd -3c | curl -n -T - ftp://login@ftp.example.com/upload/xxx.tar.zst

логин/пароль в .netrc прописать

Можно указать число тредов для сжатия.

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

Степень сжатия нужно подобрать исходя из скорости чтения, процессора и канала.

ХЗ что там за канал между серверами. Может там 10G, тогда -3 не будет тормозить.

запустить tar -cf - /backup | zstd -T4 -3c | pv >/dev/zero и посмотреть скорость паковки.

Если она больше скорости канала, то прибавить компрессии.

Да и число тредов можно варьировать.

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

Интересная команды. Надо попробовать. Сжатие не нужно, накладные расходы на ни к чему

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

И ещё гзипануть не мешает, а на сервере zcat

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

у tar-а отсутствует КС для данных.

Компрессоры имеют КС, так что это доп. гарантия, что данные целые.

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

Без ключа -f при отсутствии принимающего на stdout произойдёт ошибка. Можно использовать ключ -f с параметром -.

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

у тар+фтп есть один минус. порвется фтп и вся передача насмарку. рсинк же после перезапуска просто отсмотрит разницу между локальной и удаленной дирой и докачает остатки.

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