尝试创建一个脚本来ping多个子网, 但脚本似乎没有正常工作, 我似乎错过了什么 任何帮助将不胜感激
ping和过滤功能:
ping_hosts() {
ping -c 1 $1 > /dev/null
if [ $? -eq 0 ]; then
echo -e "server $1 is online"
echo $1 >> live_ser_list
fi
}
提交IP以过滤:
for i in '192.168.0.' '10.0.0.' '10.0.1.' '192.168.1.';do
echo "starting $i"0" network"
for j in $i{1..254};
do
ping_hosts $j & disown
done
done
编辑
尝试$1
和$j
列表文件未创建...
答案 0 :(得分:0)
您的脚本中存在一些错误,这是一个改进版本。注意所有变量的引号等。
ping_hosts() {
local addr="$1"
if ping -c 1 "${addr}" &> /dev/null; then
echo "server ${addr} is online"
echo "${addr}" >> live_ser_list
fi
}
subnets=("192.168.0." "10.0.0." "10.0.1." "192.168.1.")
for subnet in "${subnets[@]}"; do
echo "starting ${subnet}0 network"
for octet in {1..254}; do
ping_hosts "${subnet}${octet}" & disown
done
done