Скопируйте несколько файлов (различного расширения, например, xml, crt. Jks) с одного сервера на другой, используя scp - PullRequest
0 голосов
/ 07 июня 2018

У меня есть требование, когда мне нужно скопировать несколько файлов с различным расширением, например, xml, crt, jks, с одного сервера на другой, используя scp.

. На данный момент он копирует все файлы изкаталог (/tmp) и поместите его в destination server во вновь созданном подкаталоге tmp.Как только файлы переданы в destination server, мне нужно выполнить несколько команд с использованием скопированных файлов, и будут сгенерированы некоторые файлы результатов.

После того, как команды будут выполнены в destination server, мне нужно скопировать файлы результатов вsource server но снова он копирует все файлы :-(

Я попробовал эти команды, но не повезло

$scp '/tmp/*.{xml,crt,jks}' user@<destination server>

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

1 Ответ

0 голосов
/ 07 июня 2018

Попытка условно выбрать, какие расширения файлов должны получить scp'd, не отправляя их все?Нет проблем, вы - шаг в правильном направлении!Однако давайте взглянем на то, что делала ваша оригинальная команда ...

$scp '/tmp/*.{xml,crt,jks}' user@<destination server>

Хорошо, так с точки зрения команды,

"Я собираюсь запустить scpи затем найдите завершающий символ ' и обработайте внутреннее как литерал. Я вижу, что мы будем искать файлы в / tmp и возьмем файл с именем *. {xml, crt, jks}. Я вижу окончание' Итак, литерал завершен, теперь я перенесу его на переданный сервер. "

Неудивительно, что команда завершилась неудачно, поскольку у вас, вероятно, нет файлов с именем *.{xml,crt,jks} в вашей папке /tmp.Вы не ошиблись при использовании {} в соответствии с документацией по подстановочным знакам , однако проблема, с которой вы столкнулись, была простой ошибкой - литералы блокировали расширение оболочки.Использование '' привело к тому, что ввод был обработан как фактический литерал, тем самым устраняя необходимость в bash для расширения этих подстановочных знаков и условного выполнения вашей операции.Поэтому истинная команда ...

Я предлагаю прочитать больше о расширениях оболочки и провести дополнительные исследования по получению переменных или расширяемых терминов в кавычках или литералах, если вы хотите сохранить '' и все еще имеют переменные термины.

...