监控docker0网关并关闭

工作环境的docke0网段一直有人启动,写了命令每30s检测一次,一旦发现就关闭

#!/bin/bash

while true; do
    current_time=$(date +"%Y-%m-%d %H:%M:%S")
    # 检查 docker0 网桥是否启动
    if ip link show docker0 | grep -q "UP"; then
        echo "$current_time: 发现 docker0 网桥已启动,正在关闭..."
        # 关闭 docker0 网桥
        sudo ip link set dev docker0 down
        if [ $? -eq 0 ]; then
            echo "$current_time: docker0 网桥已关闭成功"
        else
            echo "$current_time: 关闭 docker0 网桥失败"
        fi
    else
        echo "$current_time: docker0 网桥未启动"
    fi
    sleep 60 # 等待一分钟再次检查
done

`$?` 是一个特殊变量,用于存储上一个命令的退出状态。在大多数情况下,命令成功执行后退出状态为 0,而出现错误时退出状态为非零值。因此,`[ $? -eq 0 ]` 表示如果上一个命令执行成功,则条件成立。

在我们的脚本中,我们使用 `sudo ip link set dev docker0 down` 命令来关闭 docker0 网桥。当这个命令成功执行并且关闭了网桥时,它会返回退出状态 0。因此,我们使用 `[ $? -eq 0 ]` 来检查命令是否成功执行。

如果退出状态为 0,条件成立,我们会打印出成功关闭 docker0 网桥的消息。如果退出状态不为 0,即命令执行失败,则会打印出关闭失败的消息。

posted @ 2024-03-11 16:34  海_纳百川  阅读(21)  评论(0编辑  收藏  举报
本站总访问量