uptime Script help [закрыто]

Кажется, нет необходимости задействовать sed (или любую другую утилиту), поскольку Bash может сделать это сам:

Теперь я отмечаю, что мне достаточно сделать: \ и затем в открывшемся «приглашении продолжения строки» я мог просто вставить свой скрипт, и он запустился. Например:

\

> Paste your script here (with #!/bin/bash) and it would run directly.

Примечание:

Вы можете запустить скрипт без обратной косой черты () и просто набрав скрипт внутри, но в случае, если у вас есть примечание скрипта (#) в начале, которое вы копируете скрипт с - - Вы бы хотели использовать обратную косую черту.

Обновление:

Прочтите комментарии: этот ответ может быть бесполезен в некоторых системах, если ваш скрипт включает комментарии.

2
10.08.2018, 23:47
2 ответа

Предполагая, что вы просто хотите, чтобы весь вывод выводился в терминал:

#!/bin/bash

hosts_file=/path/to/file
username=youruser

while read -r host; do
    hostname=$(ssh "${username}@${host}" hostname)
    ip_addr=$(ssh "${username}@${host}" hostname -I)
    uptime=$(ssh "${username}@${host}" uptime)
    echo
    {
        echo "Hostname:?$hostname"
        echo "IP:?$ip_addr"
        echo "uptime:?$uptime"
    } | column -s\? -t
    echo
done <"$hosts_file"

Это будет перебирать каждую строку вашего файла hosts _, назначая всю строку на host. Затем он установит hostname, ip_addrи uptimeв соответствующие результаты на удаленной машине. Затем он будет отображать эти результаты в формате столбцов.

1
27.01.2020, 22:17

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

while read HOST
  do { read HN; read IP; read UP; printf "hostname: %s\nIP: %s\nuptime: %s\n" "$HN" "$IP" "$UP"; } <<< "$(ssh $HOST  "hostname; hostname -I; uptime")"
  done < hostlist
0
27.01.2020, 22:17

Теги

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