выполнение базового имени на удаленном узле

Чтобы получить точный результат обновленного вопроса:

ls -1 | awk -vhostname="$(hostname)" \
            'NR == 1 { printf("%-20s\t%s\n", hostname, $0) }
             NR > 1  { printf("%-20s\t%s\n", "", $0) }'

Это выделяет столбец шириной 20 символов для имени хоста и добавляет вывод ls -1во второй столбец. Столбцы разделены табуляцией -, а имя хоста встречается только в первой строке.


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

Имя хоста машины задается командой hostname. Обычно это дает полное имя хоста,включая доменное имя (, если оно определено ), а hostname -sдает имя до первой точки:

$ hostname
client.local

$ hostname -s
client

Если у вас есть какая-то команда, и вы хотите создать имя файла для хранения ее вывода, вы можете сделать это:

somecommand >"$(hostname)_output.txt"

Это запустит somecommand(, например, вашу lsкоманду )и сохранит ее вывод в файле с именем, которое содержит имя хоста системы, на которой она выполнялась.

Если вы хотите вставить имя хоста в верхний или нижний колонтитул файла:

( echo "HEADER: The following comes from $(hostname)"
  somecommand
  echo "FOOTER: The above came from $(hostname)" ) >outputfile

или с помощьюawk:

somecommand | awk -v hostname="$(hostname)" 'BEGIN { print "## From:", hostname }
                  { print } END { print "## From:", hostname }'

, где somecommand— это команда, вывод которой вы хотите сохранить.

Если вы хотите пометить каждую строку именем хоста:

somecommand | awk -v hostname="$(hostname)" '{ print hostname, $0 }'

или их варианты.

Опция -vдля awkпозволяет установить переменную awkв командной строке.

Возможно, у вас также определена HOSTNAMEпеременная окружения. В этом случае вы можете использовать это без использования команды hostname:

awk -v hostname="$HOSTNAME"...

или вы можете получить доступ к переменной среды непосредственно внутри кода awkс помощью ENVIRON["HOSTNAME"].

0
04.12.2019, 08:17
1 ответ

Наконец-то я понял, спасибо @Kusalananda

 ssh  ubuntu@$ip -n "aws s3 cp s3://bucket/$userlistlocation. --region eu-central-1; fbname=$(basename $userlistlocation) ; echo \"\$fbname\""
0
28.01.2020, 03:03

Теги

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