概述

由于其他原因需在指定时间范围内关闭网卡及指定日期内开启网卡恢复正常网络通信,故编写了一个Shell脚本。

脚本内容

此脚本仅供参考,适用于Centos6环境, 未适配7
#!/bin/bash
# 定时停止或启用网卡 By:[email protected]
# Version: 0.0.1
# Date: 2021-06-28

# 定义系统变量
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/collect/.local/bin:/collect/bin:/bin:/sbin

# 获取当前系统版本
System_Release=`sed -n 's/.*release[[:space:]]\([0-9]\)\.[0-9].*/\1/p'  /etc/redhat-release`

# 获取当前网卡名称
if_Name=`route -n |awk '/^0.0.0.0/ {print $8}'`

if [ "${System_Release}" -eq 7 ];then
    Server_IP_Address=`ifconfig "${if_Name}" |awk '/inet / {print $2}'`
elif [ "${System_Release}" -eq 6 ];then
    Server_IP_Address=`ifconfig "${if_Name}"  |awk '/inet / {print $2}' |sed -n 's/.*:\(.*\)/\1/p'`
elif [ "${System_Release}" -eq 5 ];then
    echo "当前不支持Centos 5"
else
    echo "当前获取信息失败"
fi

# 判断网卡名称文件是否输出
if [ ! -f "/tmp/If_Name" ];then
    echo "${if_Name}" > /tmp/If_Name
fi

To_Date=`date "+%Y%m%d%H%M"`
# 获取关闭时网卡名称
New_If_Name=`cat /tmp/If_Name`

# 大于该时间
To_Date_Down_A=202106282023
# 小于该时间
To_Date_Down_D=202106282026

if [ "${To_Date}" -gt "${To_Date_Down_A}" -a "${To_Date}" -lt "${To_Date_Down_D}" ];then
    echo "已到达${To_Date}时间"
    # 判断网卡是否开启
    If_Status=`ifconfig |grep "${New_If_Name}"`
    if [ ! -z "${If_Status}" ];then
        if [ -z "${if_Name}" ];then
            echo "获取网卡信息失败"
        else
            ifdown "${New_If_Name}" &>> /tmp/auto_down
        fi
    fi
fi

# 大于该时间
To_Date_Up_A=202106282028
# 小于该时间
To_Date_Up_D=202106282033

if [ "${To_Date}" -gt "${To_Date_Up_A}" -a "${To_Date}" -lt "${To_Date_Up_D}" ];then
    echo "已到达${To_Date}时间"
    # 判断网卡是否开启
    If_Status=`ifconfig |grep "${New_If_Name}"`
    if [ -z "${If_Status}" ];then
        ifup "${New_If_Name}" &>> /tmp/auto_up
    fi
fi

Crontab 定时任务

每分钟执行一次

*/1 * * * * /bin/bash /root/Auto_Network_Up_Down.sh
END

本文标题:Centos6定时开启或关闭网卡Shell脚本

本文作者:宇宙最帅的男人

本文链接:https://lolicp.com/linux/202128164.html

版权声明:转载或者引用本文内容请注明来源及原作者,本文著作权归作者 (宇宙最帅的男人) 所有。

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

最后修改:2021 年 06 月 28 日
如果觉得我的文章对你有用,请随意赞赏