IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> shel脚本-更新hosts -> 正文阅读

[系统运维]shel脚本-更新hosts

?

?

更新hosts,将无效地址注释,地址恢复有效后再打开

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

#!/bin/bash
######################################
#功能说明:当域名失效时自动注释掉。可用之后自动打开
#
#使用说明:请把本脚本放在定时任务中执行。
#####################################
IPS=$(cat /etc/hosts|awk '{print$1}')
for IP in $IPS;
do
?if [ "$(echo $IP|awk -F '.' '{print$1}'|sed 's#[0-9]##g')" = "#" ];then
? ?EIP=$(echo $IP|sed '/#/ s/#//g')
? ?
? ?ping $EIP -c1 >>/dev/null
? ?if [ $? -eq 0 ];then
? ? sed -i "/$EIP/ s/#//g" /etc/hosts
? ?fi
else
? ?ping $IP -c1 >>/dev/null
? ?if [ $? -gt 0 ];then
? ?sed -i "s/$IP/#$IP/g" /etc/hosts
? ?fi
fi
done

更新hosts中指定域名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

#!/bin/bash
url=https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID
url_name=qyapi.weixin.qq.com

IPS=$(cat /etc/hosts|grep ${url_name}|awk '{print$1}')
for IP in $IPS;
do
?echo "当前映射,${url_name} 的公网ip地址:$IP"
? ? ? ? #resolve需要libcurl版本7.21.3才支持
? ? ? ? status_code=$(curl --resolve $url_name:443:$IP -m 5 -s -o /dev/null -w %{http_code} $url) ?
? ? ? ? echo "$url服务器,状态码为${status_code}"
? ? ? ? #指定测试服务器状态的函数,并根据返回码决定是发送邮件报警还是将正常信息写入日志
?if [ "$status_code" != "200" ];then
? ? #删除/etc/hosts里面的qyapi.weixin.qq.com对应的第一个IP的行
? ? #如果要使用shell变量,就需要使用双引号
? ? sed -i "/$IP/d" /etc/hosts
? ? echo "成功删除无效IP映射,IP:$IP"? ? ? ?
else
? ? echo "$url测试正常"
fi
done

?

?

使用ping判断域名是否访问成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

#!/bin/bash
url=https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID
url_name=qyapi.weixin.qq.com

check_http(){
? ? status_code=$(curl -m 5 -s -o /dev/null -w %{http_code} $url)
}

url_ip=`ping ${url_name} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'`
echo "${url_name} 的公网ip地址:${url_ip}"
echo "$url_ip ?$url_name" >> /etc/hosts

update_host(){
? ? if [ $url_ip != "" ];then
? ? ? ? #删除/etc/hosts里面的qyapi.weixin.qq.com的行
? ? ? ? sed '/$url_name/'d /etc/hosts
? ? ? ? #新增host
? ? ? ? echo "$url_ip ?$url_name" >> /etc/hosts
? ? fi
}
while :
do
? ? ? ?check_http
? ? ? ?date=$(date +%Y%m%d-%H:%M:%S)
? ? ? ?echo "当前时间为:$date"
? ? ? ?echo "$url服务器,状态码为${status_code}"
? ? ? ?
? ? ? ?#指定测试服务器状态的函数,并根据返回码决定是发送邮件报警还是将正常信息写入日志
? ? ? ?if [ "$status_code" != "200" ];then
? ? ? ? ? ? ? update_host ? ? ? ? ? ?
? ? ? ?else
? ? ? ? ? ? ? echo "$url测试正常"
? ? ? ?fi
? ? ? ?sleep 5

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:56:36  更:2022-10-22 21:56:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:39:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码