网络检测脚本,ping 百度,连续失败 10 次,自动重启系统
脚本内容:vi /usr/local/bin/check_ping.sh
#!/bin/bash # 定义时间格式函数,输出yyyy-MM-dd HH:mm:ss get_time() { date +"%Y-%m-%d %H:%M:%S" } # 记录开始检测日志 echo "$(get_time): 即将连 ping 10 次 baidu.com,如果全部失败,则重启操作系统" >> /var/log/check_ping.log # 连续ping百度10次,记录失败次数 FAIL_COUNT=0 for ((i=1; i<=10; i++)); do # 执行ping命令,只尝试1次,超时1秒 ping -c 1 -W 1 baidu.com > /dev/null 2>&1 if [ $? -ne 0 ]; then FAIL_COUNT=$((FAIL_COUNT + 1)) fi # 每次ping之间间隔1秒 sleep 1 done # 如果10次都失败则重启 if [ $FAIL_COUNT -eq 10 ]; then # 记录重启原因到日志 echo "$(get_time): 连续10次ping百度失败,将执行重启" >> /var/log/check_ping.log # 重启系统 reboot else echo "$(get_time): 网络正常,本轮共失败 $FAIL_COUNT 次" >> /var/log/check_ping.log fi
添加定时任务:
crontab -e
*/10 * * * * sh /usr/local/bin/check_ping.sh
等待任务执行即可

浙公网安备 33010602011771号