LINUX.ORG.RU

BASH как запустить команду на серверах по списку ; инструментарий для анализа логов

 ,


0

1

1)Хочу получить список хостнеймов, но выводит только первый из списка. Как добиться желаемого результата не прибегая к использованию pssh итп?

while read F ; do

ip=$(echo "$F" | awk -F ":" '{print $1}')
port=$(echo "$F" | awk -F ":" '{print $2}')
hostname=$(ssh -p $port root@$ip "hostname")

echo "ip="$(tput setaf 1)$ip$(tput sgr 0) and "port=$(tput setaf 2)$port$(tput sgr 0)" and hostname is $hostname

mkdir -p /home/log-dir/$ip-$port

done <all-list

2)Какие порекомендуете утилиты для сбора и анализа логов?

1) ansible all -m shell -a 'hostname'

только зачем? )

2) elk уже стал стандартом вроде, на каждом заборе описан.

stave ★★★★★ ()

У меня твой скрипт работает.

Если не перейдёшь на ansible и подобный инструментарий, то в твоём велосипеде читать файл проще через while IFS=: read host ip; do.

legolegs ★★★★★ ()
Ответ на: Спасибо от gremlintv2

Если нет ансибла - почему не скрипты. Но ты видишь разницу в количестве кода, что выливается в затраты времени и простоте дальнейшей поддержки этих скриптов.

Баш нужен, но не в этом случае. Тебя на собеседованиях часто будут спрашивать как сделать похожие штуки сразу на определенном количестве хостов, стандартный ответ - система оркестрации.

stave ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.