Scripting 如何添加不同计算机的活动netstat连接数?

Scripting 如何添加不同计算机的活动netstat连接数?,scripting,shell,unix,Scripting,Shell,Unix,我编写这段代码是为了从一台机器获取连接,并将它们与另一台机器的连接数相加 此代码未提供任何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_Deta

我编写这段代码是为了从一台机器获取连接,并将它们与另一台机器的连接数相加

此代码未提供任何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

您需要将
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

您需要将
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

下面的代码工作正常

#!/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

下面的代码工作正常

#!/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

无法分析IFS=“|”:运行结果:机器连接=prpm@sp204|LC1_R11_LCP | LC1_R12_LCP | LC1_FR15_LCP | LC1_R16_LCP+acb.sh[10]:key=“${fields[*]:1}”:错误的替换字段=($i)也不工作字段=$i正在工作为什么?无法解析IFS='|':运行结果:机器连接=prpm@sp204|LC1_R11_LCP | LC1_R12_LCP | LC1_FR15_LCP | LC1_R16_LCP+acb.sh[10]:key=“${fields[*]:1}”:坏的替换字段=($i)也不工作字段=$i正在工作为什么?