Добавить префикс имени хоста?

594
Sridhar-Sarnobat

Существует ли компактный способ составления списка файлов с добавлением имени хоста? Мои усилия, чтобы объединить ls, xargs, pasteи подмена процесса подвела меня.

Это лучшее, что я придумал:

ls * | paste <(echo $HOST) 

В конечном итоге я хочу вывести список файлов на нескольких хостах, вызвав серию команд ssh, чтобы я мог сделать что-то вроде этого:

ssh host1 "ls_with_hostname_prefix /var/log/*" ssh host2 "ls_with_hostname_prefix /var/log/*" ssh host3 "ls_with_hostname_prefix /var/log/*" 
1

1 ответ на вопрос

1
Jakuje

Похожий вопрос по SO . Вы можете просто сделать

ls | sed -e 's/^/$HOST /' 

Вы, вероятно, хотите сохранить его как скрипт на удаленных хостах или объединить его даже с ssh:

function remote_ls_with_alias() { ssh $1 "ls $2 | sed -e \"s/^/$1 /\"" } 

и запустить его как

remote_ls_with_alias host1 "/var/log/*" remote_ls_with_alias host2 "/var/log/*" remote_ls_with_alias host3 "/var/log/*" 
Чувак, это так очевидно, и я полностью упустил это, пытаясь быть умным с гораздо менее полезной командой `paste`. Sridhar-Sarnobat 7 лет назад 0
Просто примечание для всех, кто читает: двойные кавычки, чтобы имя хоста было разрешено. (Я бы отредактировал его сам, но переполнение стека говорит, что мои правки слишком короткие) Sridhar-Sarnobat 7 лет назад 0

Похожие вопросы