2

Я искал ответ, но ничего, что я нашел, не сработало.

Существует файл tar, который будет находиться на компакт-диске на другом сервере, который мне нужно перенести на мой сервер и распаковать все одновременно без промежуточного сохранения. У tar есть несколько файлов, и они могут быть неизвестны.

Как я могу сделать это или с моего сервера или с другого сервера?

Я исследовал это с помощью scp, используя tar и ssh, и попытался выяснить это с помощью rsync.

любая помощь приветствуется

2 ответа2

3

На целевой системе (где файлы будут извлечены):

cd /target/dir && ssh user@source_server "cat /path/to/your/file.tar" | tar -xvv

ИЛИ ЖЕ

С исходного сервера (где находится файл tar):

ssh user@target_system "cd /target/dir && tar -xvv" < /path/to/your/file.tar

Ниже есть несколько альтернатив для игры (на целевой системе), просто чтобы показать более изощренные способы, которые могут вас заинтересовать.

Подстановка процессов scp и bash (если есть):

scp user@source_server:/path/to/your/file.tar >(cd /target/dir && tar -x)

scp и /proc/self (если есть):

cd /target/dir && scp user@source_server:/path/to/your/file.tar /proc/self/fd/1 | tar -x
0

Это предполагает, что ваш файл является архивом TAR. Он не предполагает, что архив TAR заархивирован. Команды / параметры могут отличаться, если исходный файл действительно отличается от стандартного архива TAR.

Если у вас есть tar-файл в исходной системе, попробуйте следующее:

cd /source/dir
cat somefile.tar | ssh user@target_host "cd /target/dir; tar xvf -"

Обратите внимание на правильные параметры команды tar . x для извлечения tar, v для подробного (необязательно), f для указания файла (в отличие от ленточного устройства). Вам нужно - в конце, так как это будет tar STDIN в качестве ввода для команды tar. Команда tar должна быть заключена в кавычки для команды SSH, поэтому tar выполняется на целевом хосте, а не на локальном хосте.

С целевого сервера немного измените синтаксис:

cd /target/dir
ssh user@source_host "cat /source/dir/somefile.tar" | tar xvf -

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .