LINUX.ORG.RU
ФорумAdmin

wget > stdout > tar > gzip

 , ,


0

2

Нужно загрузить директорию по ftp с помощью wget/curl и передать ее в пайп архиватору без предварительной загрузки на диск. Что то типа:

wget  -c -r -qO- ftp://host/path/directory|gzip -9 > directory.gz

Но естественно это не прокатывает, так как жмется просто поток и все файлы в каше. Как передать поток tar`у?



Последнее исправление: cetjs2 (всего исправлений: 1)

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

Объем исчисляется десятками гигабайт.

dragster
() автор топика

Tar боюсь не будет сжимать директории, поданный на stdin, там же нет никакого разделения на файлы и т.п. Так что никак. Я обычно если есть шелл доступ делаю типа

1
# tar -cf - blah/ | nc 1.1.1.1 6666

2
# nc -l -p 6666 | tar -x
И любдое дерево директорий переезжает на ура. Можно еще rsync, но с ним сложнее.

Ты еще можешь попробовать ftpfs, будет как раз «локальная» директория на которую можно натравить tar.

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

С неткатом придется писать длинный костыль для автоматизации.
Про ftpfs спасибо, но попробовал curlftpfs - очень медленно.

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

Тогда

ssh user@host tar -cf - /home/blah | gzip > backup.tar.gz
Тар будет выполнятся удаленно, гзип - локально и класть в файл.

А вообще рулит система бэкапа аля бакула и не надо никаких костылей.

Для скорости можно отключить шифрование.

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

попробовал curlftpfs - очень медленно.

Что именно медленно? Проц сильно грузит? Или на мелких файлах тормозит?

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

Задача в том, что бы забрать бэкапы машин со стораджей гипервизора(esxi), а в его окружении особо не разгуляешся. До недавнего времени использовал ssh c конвеером по типу вашего примера но нет гарантии что файл сольется полностью, так как канал не особо стабильный а докачка невозможна (nfs туда же). По этому я вживил proftpd, что дало мне возможность докачать файл в случае отвала соединения по таймауту. Времени на сжатие папки в месте назначения нет, так как архив за сутки архив должен скопироваться в другое место.

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

А использовать всякие нормальные средства для бэкапа vSphere? Или денег нет? Зачем тогда было брать vmware? Да, ты ВМ гасишь перед бэкапом?

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

Сфера в бесплатном варианте, бюджет ограничен. Машинки клонирует ghettovcb на ходу, делая снапшоты.

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

Ну, может стоило тогда просто использовать бесплатный гипервизор на XEN/KVM, вроде Proxmox? С ним гораздо меньше проблем было бы с бэкапом и вообще.

По теме - мыслей особо нет, если нужна докачка, то можно всё-таки попробовать rsync, он вроде умеет бинарный дифф делать.

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

Сторажи локальные чтоли

Да.

там нету tar? Дошел до нашего сервака с esxi 4.1.0 - там tar есть.

tar: cannot store file 'hdd1-flat.vmdk' of size 107374182400, aborting
# ls -lh
-rw------- 1 root root 100.0G Jun 24 20:56 hdd1-flat.vmdk

Ну, может стоило тогда просто использовать бесплатный гипервизор на XEN/KVM, вроде Proxmox?

В наследство.

По теме - мыслей особо нет

Все равно спасибо.

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

tar: cannot store file 'hdd1-flat.vmdk' of size 107374182400, aborting

это на какую команду?

В поток он тоже не хочет тарить?

tar cf - ./dir/

pianolender ★★★
()

а если не рекурсивно, а для каждого файла делать tar append?

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