Как добавить количество активных соединений netstat другой машины? - PullRequest
1 голос
/ 08 июня 2010

Я написал этот код для получения соединений с одной машины и добавления их с номером соединения другой машины.

Этот код не дает никакого netstat, 0 идет для активного активногосоединения.

#!/usr/bin/ksh -xvf
Machine_Detail="prpm@sp204|LC1_R11_LCP|LC1_R12_LCP|LC1_FR15_LCP|LC1_R16_LCP         prpm1@sp2048|LC1_R13_LCP|LC1_R14_LCP|LC1_R17_LCP|LC1_R18_LCP"

for i in $Machine_Detail
    do
        machine_connect=$(echo $i | cut -d'|' -f1)
        echo $machine_connect

        ssh $machine_connect
        Conn_count=**$(netstat -an | grep $`echo ${i} | cut -d'|' -f2`| wc -l | sed 's/ //g')**
        Conn_count=$((${Conn_count}+$(netstat -an | grep $`echo ${i} | cut -d'|' -f3` | wc -l | sed 's/ //g')))
        Conn_count=$((${Conn_count}+$(netstat -an | grep $`echo ${i} | cut -d'|' -f4` | wc -l | sed 's/ //g')))
        Conn_count=$((${Conn_count}+$(netstat -an | grep $`echo ${i} | cut -d'|' -f5` | wc -l | sed 's/ //g')))
        Total_Conn_Count=$((${Total_Conn_Count}+${Conn_count}))
        echo $Total_Conn_Count

        exit
    done

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Вам необходимо отправить команду netstat в качестве аргумента команды ssh, чтобы она выполнялась на целевом компьютере.Вы можете использовать egrep, чтобы использовать символы конвейера, чтобы получить счет за один шаг.Я не уверен, действительно ли вам нужно sed, чтобы удалить пробелы.

#!/usr/bin/ksh -xvf
Machine_Detail="prpm@sp204|LC1_R11_LCP|LC1_R12_LCP|LC1_FR15_LCP|LC1_R16_LCP         prpm1@sp2048|LC1_R13_LCP|LC1_R14_LCP|LC1_R17_LCP|LC1_R18_LCP"
for i in $Machine_Detail
do
    saveIFS=$IFS
    IFS='|'
    fields=($i)
    machine_connect=${fields[0]}
    keys="${fields[*]:1}"
    IFS=$saveIFS
    echo $machine_connect
    Conn_count=$(ssh $machine_connect "netstat -an | egrep $keys | wc -l")
    ((Total_Conn_Count += Conn_Count))
done
echo $Total_Conn_Count
0 голосов
/ 10 июня 2010

Следующий фрагмент кода работает правильно.

#!/usr/bin/ksh -xvf 
    Machine_Detail="prpm@sp204|LC1_R11_LCP|LC1_R12_LCP|LC1_FR15_LCP|LC1_R16_LCP         prpm1@sp2048|LC1_R13_LCP|LC1_R14_LCP|LC1_R17_LCP|LC1_R18_LCP" 
    for i in $Machine_Detail
    do
    machine_connect=$(echo $i | cut -d'|' -f1)
    echo $machine_connect

    Conn_count=$(ssh -f -T $machine_connect "netstat -an | grep "$(echo $(($(echo $i | cut -d'|' -f2))))" | wc -l | sed 's/ //g'")
    Conn_count=$((${Conn_count}+$(ssh -f -T $machine_connect "netstat -an | grep "$(echo $(($(echo $i | cut -d'|' -f3))))" | wc -l | sed 's/ //g'")))
    Conn_count=$((${Conn_count}+$(ssh -f -T $machine_connect "netstat -an | grep "$(echo $(($(echo $i | cut -d'|' -f4))))" | wc -l | sed 's/ //g'")))
    Conn_count=$((${Conn_count}+$(ssh -f -T $machine_connect "netstat -an | grep "$(echo $(($(echo $i | cut -d'|' -f5))))" | wc -l | sed 's/ //g'")))

    Total_Conn_Count=$((${Total_Conn_Count}+${Conn_count}))
    echo $Total_Conn_Count

    done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...