已从 stackoverflow.com 重定向
我们有一台具有网络绑定的 Suse Linux 11 服务器,我们将其命名为 DBSERVER。
在另一台名为 CLIENTMACHINE 的类似机器上运行以下脚本时,我们在将脚本指向 DBSERVER 时没有观察到任何错误:
(开始脚本)
#!/bin/bash
# parameter: IP address
if [ ${#*} != 1 ]
then
echo "Need one parameter: IP address"
exit 1
fi
echo "Please monitor log with command tail -f /root/bin/report_ping_${1}.txt"
echo "Script began at `date +'%Y-%m-%d %T'`" >> /root/bin/report_ping_${1}.txt
while [ 1 ]
do
RESULT=`ping -c 1 "${1}" | grep transmitted`
#echo "RESULT is ${RESULT}"
PERCENTAGE_LOST=`echo $RESULT | awk '{ print $6 }'`
#echo "PERCENTAGE_LOST is ${PERCENTAGE_LOST}"
NUMBER_LOST=${PERCENTAGE_LOST:0:${#PERCENTAGE_LOST}-1}
#echo "NUMBER_LOST is ${NUMBER_LOST}"
if [ "${NUMBER_LOST}" != "0" ]
then
echo "${PERCENTAGE_LOST} lost for ${1} at `date +'%Y-%m-%d %T'`" >> /root/bin/report_ping_${1}.txt
fi
done
(脚本结束)
但是,如果我们使用从 DBSERVER 指向 CLIENTMACHINE 的相同脚本,我们会在日志中观察到错误。
对于要检查什么,有什么建议吗?
提前致谢,
伯特
忘了说错误是间歇性的!大多数时候都有效。
答案1
您可以尝试在运行脚本时运行 tcpdump 或 tshark
tcpdump -i eth0 -n -p icmp
您应该在某个地方看到 tcpdump 输出在出站 ping 请求或入站 ping 回复处停止。当然,您可以在客户端和服务器上执行此操作,并查看两台机器的请求和响应是否正确。由于您正在使用绑定,您可能需要 tail -f /var/log/syslog 或 /var/log/messages,并查看内核是否记录了有关绑定故障转移到从属 NIC 的信息。