Повысить производительность кода за счет уменьшения количества SSH - PullRequest
0 голосов
/ 13 июля 2010

Эта функция занимает огромное количество времени, чтобы вычислить состояние процесса, поскольку каждый раз, когда ему требуется ssh войти в машину, необходимо найти состояние процесса.

У меня всего четыре машины и около 50+ процесс для мониторинга и детали упомянуты в configDaemonDetails.txt

как:

abc@sn123|Daemon_1|processname_1
abc@sn123|Daemon_2|processname_2
efg@sn321|Daemon_3|processname_3 

Как сократить время, выполняя ssh один раз на машине и находя весь его процессинформация, как определено в текстовом файле.?

CheckProcessStatus ()
{
         echo "              ***** Checking Process Status ***** "
         echo "========================================================="
         IFS='|'
         cat configDaemonDetails.txt | grep -v "^#" | while read MachineDetail Daemon ProcessName
         do

                Status=`ssh -f -T ${MachineDetail} ps -ef | egrep -v "grep|less|vi|more" | grep "$ProcessName"`
                RunTime=`echo "$Status" | sed -e 1'p' -e '1,$d' | awk '{print $5" "$6}'`
                if [ -z "$Status" ]
                        then
                                echo "The Process is DOWN $Daemon | $ProcessName "
                        else
                                echo "The Process $Daemon | $ProcessName is up since  $RunTime"
                fi

         done

         echo "-----------------------------------------------------"

}

Спасибо :)

Ответы [ 2 ]

2 голосов
/ 13 июля 2010

Разве вы не можете просто получить весь вывод ps -ef сразу, а затем проанализировать его соответствующим образом?Я подозреваю, что это то, что вы спрашиваете, и, возможно, все, что вы хотите, это пример того, как это сделать?Если это так, скажите, и я приведу пример.

0 голосов
/ 13 июля 2010

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

например, вы можете получить список процессов, подобный этому:

snmpwalk -v2c -cPASSWORD HOST 1.3.6.1.2.1.25.4.2.1

Взгляните на этот плагин Nagios, который обрабатывает проверки, и посмотрите в код фактические идентификаторы SNMP.

...