Загрузка данных


#!/bin/bash

# Параметры (подставьте свои)
HOST_FILE="nikiet_ip.txt"
PASSWORD="ваш_пароль"
USER="root"

while IFS= read -r SERVER || [[ -n "$SERVER" ]]; do
    [[ -z "$SERVER" || "$SERVER" =~ ^# ]] && continue

    # Запускаем 'true' (команда, которая ничего не делает), 
    # чтобы просто инициировать вход и получить текст приветствия.
    WELCOME_MSG=$(sshpass -p "$PASSWORD" ssh -n -o StrictHostKeyChecking=no -o ConnectTimeout=2 "$USER@$SERVER" "true" 2>/dev/null)

    # Очищаем вывод, если нужно вытащить только имя (пример для "welcome to name")
    # Используем awk, чтобы взять последнее слово перед точкой или воскл. знаком
    CLEAN_NAME=$(echo "$WELCOME_MSG" | grep -i "welcome to" | awk '{print $NF}' | tr -d '!.')

    if [ -n "$CLEAN_NAME" ]; then
        echo "$CLEAN_NAME"
    else
        # Если приветствие не найдено, пробуем обычный hostname
        sshpass -p "$PASSWORD" ssh -n -o StrictHostKeyChecking=no -o ConnectTimeout=2 "$USER@$SERVER" "hostname" 2>/dev/null || echo ""
    fi

done < "$HOST_FILE"