监控网络丢包脚本 登录后复制 #!/bin/bash # 设置目标主机和ping次数 TARGET_HOST="127.0.0.1" while true; do # 执行ping命令并获取输出结果 设置超时时间为2秒 PING_OUTPUT=$(ping -c 1 -w 2 $TARGET_HOST | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()); fflush()}') # echo "${PING_OUTPUT}" # 检查ping命令是否成功执行(返回值为0) if [ $? -ne 0 ]; then echo "${PING_OUTPUT}" echo "Ping命令执行失败。" exit 1 fi # # 检查输出结果中是否包含"packet loss"并统计丢包情况 PACKET_LOSS=$( echo "${PING_OUTPUT}" | grep -oP '(\d+)% packet loss' | awk '{print $1}' | grep -oP '(\d+)') if [[ $PACKET_LOSS -gt 0 ]]; then echo "${PING_OUTPUT}"; echo "Ping失败,存在丢包情况。丢包率:$PACKET_LOSS%。"; exit 1 # 终止脚本执行 fi # 等待 1s sleep 1 done 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30. 原创作者: u_4981212 转载于: https://blog.51cto.com/u_4981212/11732258