[工具] Shell 批量检测服务器网络的联通状态

介绍

基本信息

作者:朱明宇
名称:批量检测服务器网络的联通状态
作用:批量检测服务器网络的联通状态

使用方法

1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每个远程服务器名或 IP 地址占用 1 行
3. 在此脚本的分割线内写入相应的内容
4. 给此脚本添加执行权限
5. 执行此脚本

脚本分割线里的变量

list=”servers_all_list.txt” #指定服务器清单

脚本

#!/bin/bash

####################### Separator ########################

list="servers_all_list.txt"

####################### Separator ########################

read -p "will ping please input y " a
echo $a

if [ "$a" != "y" ];then
        echo "you don't agree so exit now"
        exit
fi

num=0

for i in `awk '{print $1}' servers_all_list.txt`
do
        let num++
        echo "$num $i"
        ping -c3 -i0.4 -w0.8 $i
        echo
done


补充:清单示例如下,可直接复制粘贴,如果不更改脚本,清单请命名为 servers_all_list.txt:

db1
db2
db3
web1
web2

[工具] Shell 批量检测域名的 DNS 解析是否正确

介绍

基本信息

作者:朱明宇
名称:批量检测域名的 DNS 解析是否正确
作用:批量检测域名的 DNS 解析是否正确

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量

1. main_domain=eternalcenter.com #此处填写网站的“主域名”,网站一般会有几个域名,其中“主域名”直接指向 ip 地址,其他的域名都指向主域名
2. ip=192.154.240.64 #域名指向的 ip 地址
3. nginx=1.16.0 #web 程序的对应版本的版本
4. content1=”eteranlcenter” # 随即填写一个具有代表性的网站首页的内容
5. content2=”Mingyu” # 随即填写一个具有代表性的网站首页的内容,但是要和前面的 content1 在同一行
6. domain=”eternalcenter.com eternalcentre.com zhumingyu.com mingyuzhu.com eternalcenter.org eternalcentre.org” #需要检测的域名

脚本

#!/bin/bash

####################### Separator ########################

main_domain=eternalcenter.com
ip=144.48.142.148
nginx=1.16.0
content1="eternalcenter"
content2="Mingyu"
domain="eternalcenter.com eternalcentre.com zhumingyu.com mingyuzhu.com eternalcenter.org eternalcentre.org"

####################### Separator ########################

check_domain_name(){
if [ $1 == $main_domain ];then
	
	ping -c4 -i0.4 $1 | grep $ip &> /dev/null
	if [ $? -ne 0 ];then
		echo -e "\033[31m $1 is error !!!!! ip is error !!!!! \033[0m"
	else
		curl $1 | grep $nginx &> /dev/null
		if [ $? -ne 0 ];then
			echo -e "\033[31m $1 is error !!!!! software is error !!!!! \033[0m"
		else	
			elinks $1 | grep "$content1" | grep "$content2" &> /dev/null
			if [ $? -ne 0 ];then
				echo -e "\033[31m $1 is error !!!!! web is error !!!!! \033[0m"
			else
				echo -e "\033[32m $1 is ok \033[0m"
			fi
		fi
		
	fi
else
	elinks $1 | grep "$content1" | grep "$content2" &> /dev/null
	if [ $? -ne 0 ];then
		echo -e "\033[31m $1 is error !!!!! web is error !!!!! \033[0m"
	else
		echo -e "\033[32m $1 is ok \033[0m"
	fi


fi
}

for i in $domain
do
	check_domain_name $i
done

[工具] Shell 检测性能指标 (例如:剩余硬盘空间、内存空间等)

介绍

基本信息

名称: 检测性能指标(例如:剩余硬盘空间、内存空间等)
作用: 检测性能指标(例如:剩余硬盘空间、内存空间等)

使用方法

1. 给此脚本添加执行权限
2. 执行此脚本

脚本

#!/bin/bash

ip=`ip a s | awk '/[1-2]?[0-9]{0,2}\.[1-2]?[0-9]{0,2}/&&!/127.0.0.1/{print $2}'`
host=`hostname`
disk=`df -h | awk '/\/$/{print $5}'`
mem=`free -m | awk '/Mem/{print $4}'`
cpu=`top -bn 1 | awk -F',' '/^%Cpu/{print $4 }' | awk '{print $1}'`
soft=`rpm -qa | wc -l`
port=`ss -ntulap | wc -l`

echo "$ip $host disk $disk"
echo "$ip $host mem $mem"
echo "$ip $host cpu $cpu"
echo "$ip $host soft $soft"
echo "$ip $host port $port"
echo