Запустите команду на нескольких машинах и распечатайте соответствующий IP-адрес

пользователи Гнома при Дебиэн Джесси, должен установить [ https://extensions.gnome.org/extension/755/hibernate-status-button/] (Зимуйте Кнопка Статуса), расширение.

0
26.09.2018, 20:04
1 ответ

У вас уже есть IP-адрес; так что вы можете просто использовать его:

for host in 1.5.4.7 1.5.3.9; do
    ssh core@$host "sudo grep -A 2 hi /home/abc.txt" && \
    printf "%s\n" "$host"
done

Запуск hostname, как в примере кода в вашем вопросе, выведет имя хоста , а не IP-адрес , который вы сказали, что хотите.

Использование &&для разделения команд приведет к запуску последующей команды только в том случае, если (и только если )код выхода последующей команды равен нулю;если grepне находит совпадений, он не возвращает ноль и вторая команда не выполняется.

Кроме того, хотя я мало что знаю о вашем конкретном -случае использования, я обычно считаю, что при запуске подобных вещей легко показать хост до вывода того, что должно быть запущено на хосте. а не после , но это так же просто, как переместить оператор printf(или, если хотите, вы можете использовать echo "$host"вместо ).

2
28.01.2020, 02:31

Теги

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