Я пытаюсь создать сценарий bash для получения информации о ЦП и памяти на разных серверах Unix и передачи их в один текстовый файл на локальном сервере.
Сценарий что-то возвращает (результат), но результат был неточным, когда я вручную проверял информацию о ЦП и памяти каждого из серверов. В скриптах может быть какая-то ошибка, так как команды CPU и Memory верны.
Вот команда для получения информации о процессоре в Unix (HPUX):
machinfo | grep CPUs | awk '{print $5}'
И результатом будет:
4
А вот команда для получения информации о памяти в Unix (HPUX):
machinfo | grep Memory | awk '{print $3}'
И результатом будет:
4090
Это показывает, что команды верны. Перейдем к полным сценариям.
#!/bin/ksh
SERVERS='
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx'
cpu=$(machinfo | grep CPUs | awk '{print $5}')
mem=$(machinfo | grep Memory | awk '{print $3}')
print "SERVER" "CPU" "RAM (MB)";
for i in $SERVERS
do
ssh -n $i 2>&1 '$cpu | $mem'
print $cpu $mem
done
Когда запустятся полные скрипты, результатом будет:
SERVER CPU RAM (MB)
s24bf011 2 4090
s24bf012 2 4090
s24bf013 2 4090
s24bf014 2 4090
s24bf016 2 4090
S24BF104 2 4090
S24BF105 2 4090
10.14.24.158 2 4090
S29BF200 2 4090
S02BF131 2 4090
S02BF104 2 4090
S24BF071 2 4090
S24BF165 2 4090
10.14.24.17 2 4090
Каждый сервер имеет свой процессор и оперативную память. Почему они все одинаковые? Ошибка в SSH?
$(foo)
тут же выполняетfoo
. Вы ничего не запускаете на своих удаленных серверах. - person Mat   schedule 02.04.2015