scp (v4) копирование с удаленного на несколько локальных имен файлов

Я сделал кучу googling, и я думаю, что то, что я пытаюсь сделать, невозможно с openssh / scp v4.x, но хотел спросить здесь, если у кого-то есть творческое решение.

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

Кроме того, причина, по которой я пытаюсь сделать это, состоит только в том, что для каждого удаленного хоста (1) не требуется 1 логин (без ключей ssh) (не нужно вводить пароль для каждого файла).

вот что у меня есть:

machine="server1.nyc.ny" logdir="/var/log/jboss" logs="garbage.log splunk.log jboss.log" for BOX in ${machine[@]};do scp $BOX:$logdir/\{"${logs[0]}","${logs[1]}","${logs[2]}"\} ./ done 

это работает для получения всех файлов с 1 логином на удаленный хост, но в конечном итоге у меня будет несколько удаленных хостов, поэтому я хочу предварительно подставить имя машины в имя файла журнала – то есть: server1.nyc.ny-garbage. журнал

тот же синтаксис для получения файлов не работает для назначения. мой ssh ​​/ scp – v4, поэтому я не могу использовать опции ControlPersist.

любые творческие решения? Большое спасибо!

ps: массив имен файлов журналов здесь не нужен, но я использую его, потому что некоторые пользователи имеют ключи ssh, поэтому вложенные петли, использующие эти массивы, отлично подходят для них. Мне нужно решение для пользователей, у которых нет ключей ssh, и, следовательно, минимизируйте количество ввода пароля.

  • case + как реализовать равный или меньше или больше в случае синтаксиса
  • Получение возвратов Nagios из скрипта через NRPE
  • Параметр синтаксического анализа скрипта Bash с кавычками
  • tr -c '' '\ n' не заменяет всех символов дополнения
  • Сценарий оболочки и crontab, чтобы фиксировать размер файла, имя и дату в CSV-файле, а затем отправлять по электронной почте?
  • Отсутствует «Запуск в терминале» в KDE
  • Выход Capture (sdout / stderr) отправителя SSH-порта
  • В сценарии оболочки выполните команду, только если источник более новый, чем целевой
  • One Solution collect form web for “scp (v4) копирование с удаленного на несколько локальных имен файлов”

    Возможно, мне что-то не хватает, но похоже, что вам просто нужен дополнительный mv шаг для переименования скопированных файлов. Что-то вроде:

     machine="server1.nyc.ny" logdir="/var/log/jboss" logs="garbage.log splunk.log jboss.log" targets="" for BOX in ${machine[@]};do scp $BOX:$logdir/\{"${logs[0]}","${logs[1]}","${logs[2]}"\} ./ for log in ${logs[@]}; do mv "$log" $BOX_"$log" done done 
    Linux и Unix - лучшая ОС в мире.