Я пытаюсь запустить некоторые команды из ssh. На каждом удаленном сервере имеется несколько переменных.Выполнение нескольких команд с параметрами в ssh
for db_serv in `olsnodes`; do
for db_ins in `ssh $db_serv ps -ef | grep ora_pmon_ | grep -v grep | cut -d"_" -f3`; do
SessionSayisi=`ssh $db_serv ps -ef | grep $db_ins | grep 'LOCAL=NO'|grep -vc ASM`
echo "SessionSayisi= $SessionSayisi $db_ins"
done
done
Это хорошо работает, но занимает много времени, потому что команда запускает ssh для каждой переменной. Мне нужно подключить только один раз для каждого сервера, а затем получить все переменные выходы, а затем ssh к другому.
Вот что я пытался, но не получилось:
for db_serv in `olsnodes`; do
ssh $db_serv ps -ef | grep ora_pmon_ | grep -v grep | cut -d"_" -f3 << EOF
for db_ins in `ps -ef | grep ora_pmon_ | grep -v grep | cut -d"_" -f3`; do
echo "SessionSayisi= $SessionSayisi $db_ins"
done
EOF
done
Я могу получить имя, но не могу получить переменную «$ db_ins», она просто показывает пробел. Также он помещает слово «do» в конце каждого EOF. – AloneInTheDark