#!/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"