Bash脚本:每3秒ping一次并通过telnet重启设备连接

ChatGPT4o 使用 ChatGPT 4o 回答

问题:

设置WLProfile是配置名称变量 使用bash写一个脚本,每3秒ping一次192.168.3.1,如果ping不通,则通过telnet到169.254.0.1 2323,依次发送 config wlan profile 配置名称变量 Basic state disabled write state enabled write 用于重启设备连接,并打印reconnect!

回答:

以下是一个使用Bash编写的脚本,每3秒ping一次192.168.3.1,如果ping不通,则通过telnet到169.254.0.1的2323端口,依次发送一系列命令来重启设备连接,并打印"reconnect!"。

请确保你已经安装了telnet工具,并且有权限执行这些操作。

#!/bin/bash

# 配置名称变量
WLProfile="your_profile_name"

# 目标IP地址
TARGET_IP="192.168.3.1"
TELNET_IP="169.254.0.1"
TELNET_PORT="2323"

# 检查ping是否通
while true; do
    if ! ping -c 1 $TARGET_IP &> /dev/null; then
        echo "Ping $TARGET_IP failed. Attempting to reconnect..."

        # 使用telnet发送命令
        (
            sleep 1
            echo "config"
            sleep 1
            echo "wlan profile $WLProfile"
            sleep 1
            echo "Basic"
            sleep 1
            echo "state disabled"
            sleep 1
            echo "write"
            sleep 1
            echo "state enabled"
            sleep 1
            echo "write"
            sleep 1
            echo "exit"
        ) | telnet $TELNET_IP $TELNET_PORT

        echo "reconnect!"
    else
        echo "Ping $TARGET_IP successful."
    fi

    # 每3秒检查一次
    sleep 3
done

说明:

  1. WLProfile:请将your_profile_name替换为实际的配置名称变量。
  2. ping命令:每3秒ping一次目标IP地址192.168.3.1
  3. telnet命令:如果ping不通,则通过telnet连接到169.254.0.1的2323端口,并依次发送命令。
  4. sleep命令:在发送每个命令之间添加sleep以确保命令有足够的时间被处理。
  5. 循环:脚本会一直运行,每3秒检查一次连接状态。

使用方法:

  1. 将脚本保存为一个文件,例如reconnect.sh
  2. 赋予脚本执行权限:chmod +x reconnect.sh
  3. 运行脚本:./reconnect.sh

请根据实际情况调整脚本中的变量和命令。