有UPS电源的linux debian12系统 通过网络判断是否停电需要关机

使用脚本 让每隔3分钟 分别ping 三个网络地址,如果3次都ping不通,就1分钟后关机(可以设置2个内网地址,1个外网地址,最好包括一个内网路由器网关地址)

使用文本编辑器创建一个新的 Bash 脚本文件,比如 ping_check.sh:

在脚本中写入以下内容:

#!/bin/bash

# 定义要 ping 的 IP 地址
IP_ADDRESSES=("192.168.1.2" "192.168.1.3" "192.168.1.4")
FAILURE_COUNT=0  # 失败计数

while true; do
    for IP in "${IP_ADDRESSES[@]}"; do
        # Ping 该 IP 地址 1 次
        if ping -c 1 $IP > /dev/null 2>&1; then
            echo "Ping $IP: 成功"
            FAILURE_COUNT=0  # 如果成功,将失败计数清零
        else
            echo "Ping $IP: 失败"
            FAILURE_COUNT=$((FAILURE_COUNT + 1))  # 如果失败,增加失败计数
        fi
    done

    # 如果连续 9 次都失败
    if [ $FAILURE_COUNT -ge 9 ]; then
        echo "9分钟内 分3次 每隔3分钟 分别ping 3个地址都失败,可能已经停电,1 分钟后关机"
        sleep 60  # 等待 1 分钟
        shutdown now  # 关机
    fi

    # 每隔 3 分钟检查一次
    sleep 180
done

在当前目录终端中运行以下命令,给予脚本执行权限:
chmod +x ping_check.sh
说明
ping -c 1 $IP:每次只发送一个 ping 包。
sleep 180:每次循环之间等待 3 分钟。
shutdown now:在检测到连续失败 3 次后,等待 1 分钟后关机。

注意
权限:确保你有足够的权限执行关机命令。可以使用 sudo 运行脚本。
帮助信息:你可以随时查看脚本的输出,以了解当前的 ping 状态。
脚本终止:如果需要停止脚本的执行,可以找到它的进程并终止(例如使用 kill 命令)。

通过以上步骤,你就可以在 Debian 12 系统上实现按要求的 ping 检查和关机功能。

要将你的 ping 检查脚本设置为系统服务,以便在每次开机时自动运行,可以按照以下步骤操作:

1、将ping_check.sh脚本文件放到指定目录,例如/etc/guanji目录,注意要给执行权限

2、创建系统服务文件
touch /etc/systemd/system/ping-check.service

在该文件中输入以下内容:

[Unit]
Description=Ping Check Service
After=network.target

[Service]
ExecStart=/bin/bash /etc/guanji/ping_check.sh
Restart=always
RestartSec = 20
StartLimitInterval = 0

[Install]
WantedBy=multi-user.target


ExecStart:指定要执行的命令。这里使用 /bin/bash 来执行你的脚本。
Restart: 设置为 always,表示如果服务崩溃或被停止,systemd 将会自动重启该服务。
RestartSec: 设置重启服务之前的延迟时间,这里是 20 秒。
StartLimitInterval: 设置为 0,表示没有限制,即不限制在特定时间内启动失败的次数。
WantedBy: 指定该服务在安装时被包含在哪个目标中。在这里,表示当系统进入 multi-user.target(多用户命令行模式)时,这个服务将会被启动。

重新加载 systemd
在修改或添加服务后,需重新加载 systemd 以识别新服务:
systemctl daemon-reload

启动服务并设置开机自启

启动服务:
systemctl start ping-check.service

设置服务在开机时自动启动:
systemctl enable ping-check.service

检查服务状态
systemctl status ping-check.service

sanradar
sanradar
文章: 104

2 评论

  1. you are in reality a just right webmaster The site loading velocity is incredible It seems that you are doing any unique trick In addition The contents are masterwork you have performed a wonderful task on this topic

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注