Добавить префикс имени хоста?
Существует ли компактный способ составления списка файлов с добавлением имени хоста? Мои усилия по объединению 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 ответ
Решение
Похожий вопрос по 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/*"