#!/bin/bash
# 基于 CentOS 7.5 编写
# 检测访问 web 页面
web() {
echo "############################ web访问 ############################"
curl "https://127.0.0.1:443" -k | grep '节点' | cut -d '>' -f2 | cut -d '<' -f1 >html_lzl.txt
grep '堡垒' html_lzl.txt >/dev/null
if [[ $? -eq 0 ]]; then
echo -e
else
echo "无法访问web"
fi
}
# 检测系统信息
system() {
echo "######################### 系统信息 #########################"
OS_TYPE=$(uname)
OS_VER=$(cat /etc/redhat-release)
OS_KER=$(uname -a | awk '{print $3}')
OS_TIME=$(date +%F_%T)
OS_RUN_TIME=$(uptime | awk '{print $3}' | awk -F, '{print $1}')
OS_LAST_REBOOT_TIME=$(who -b | awk '{print $2,$3}')
OS_HOSTNAME=$(hostname)
echo " 系统类型:$OS_TYPE"
echo " 系统版本:$OS_VER"
echo " 系统内核:$OS_KER"
echo " 当前时间:$OS_TIME"
echo " 运行时间:$OS_RUN_TIME"
echo "最后重启时间:$OS_LAST_REBOOT_TIME"
echo " 本机名称:$OS_HOSTNAME"
}
# 检查是否可以连接外网
外网() {
echo "######################### 访问外网 #########################"
ping -c 1 www.baidu.com &>/dev/null
if [ $? -eq 0 ]; then
ping_tong=能连接网络!
else
ping_tong=不能连接网络!
fi
echo "------ 网络状态:$ping_tong "
}
# 磁盘使用状况--存在语法错误
磁盘() {
echo "######################### 磁盘 #########################"
IFS=""
for i in $(df -hP | sed 1d | awk '{print $(NF-1)"\t"$NF"\t"$(NF-2)}'); do
DISK_UTILIZ=$(echo $i | awk '{print $1}')
MOUNT_DISK=$(echo $i | awk '{print $2}')
DISK_FREE=$(echo $i | awk '{print $3}')
if [[ $(echo $DISK_UTILIZ | sed s/%//g) -gt 70 ]]; then
echo "不正常""("$MOUNT_DISK"的使用率"$DISK_UTILIZ"较大,请注意"")"
else
continue
fi
done
echo -e
echo "磁盘具体使用状况:"
df -hP | sed 1d | awk '{print $NF"分区""剩余空间"$(NF-2),"使用率"$(NF-1)}'
}
# 内存、cpu占用情况
内存() {
echo "######################### 内存 #########################"
RESULT=$?
if [ ${RESULT} -eq 0 ]; then
MEM_SUM_NUM=$(free -m | grep "Mem:" | awk -F" " '{print $2}')
MEM_SURPLUS_NUM=$(free -m | grep "Mem:" | awk '{for(i=4;i<=NF;i++) print $i""FS;}' | awk '{a+=$1}END{print a}')
MEM_SUM=$(free -m | grep "Mem:" | awk -F" " '{print $2"M"}')
MEM_SURPLUS=$(free -m | grep "Mem:" | awk '{for(i=4;i<=NF;i++) print $i""FS;}' | awk '{a+=$1}END{print a"M"}')
MEM_USED=$(echo $(($MEM_SUM_NUM - $MEM_SURPLUS_NUM)))
PERCENT=$(printf "%d%%" $(($MEM_USED * 100 / $MEM_SUM_NUM)))
PERCENT_NUM=$(echo $PERCENT | sed s/%//g)
if [[ $PERCENT_NUM -lt 70 ]]; then
MEM_STATUS=正常
else
MEM_STATUS=不正常
fi
echo "$MEM_STATUS(""总内存大小"$MEM_SUM,"剩余内存大小"$MEM_SURPLUS,"内存使用率"$PERCENT")"
else
MEM_SUM_NUM7=$(free -m | grep "Mem:" | awk -F" " '{print $2}')
MEM_SURPLUS_NUM7=$(free -m | grep "Mem:" | awk -F" " '{print $4}')
MEM_SUM7=$(free -m | grep "Mem:" | awk -F" " '{print $2"M"}')
MEM_SURPLUS7=$(free -m | grep "Mem:" | awk -F" " '{print $4"M"}')
MEM_USED7=$(echo $(($MEM_SUM_NUM7 - $MEM_SURPLUS_NUM7)))
PERCENT7=$(printf "%d%%" $(($MEM_USED7 * 100 / $MEM_SUM_NUM7)))
PERCENT_NUM7=$(echo $PERCENT7 | sed s/%//g)
if [[ $PERCENT_NUM7 -lt 70 ]]; then
MEM_STATUS=正常
else
MEM_STATUS=不正常
fi
echo "$MEM_STATUS(""总内存大小"$MEM_SUM7,"剩余内存大小"$MEM_SURPLUS7,"内存使用率"$PERCENT7")"
fi
}
# 检测 mongodb 服务,以及mongodb 服务状态
mongodb() {
echo "############################ mongodb 服务检查 ############################"
ps aux | grep -v grep | grep mongodb.conf >/dev/null
if [[ $? -eq 0 ]]; then
echo "mongodb.conf 存在"
else
echo "mongodb.conf 不存在"
fi
mongodb=$(systemctl status mongodb | grep Active | awk '{print $3}' | cut -d "(" -f2 | cut -d ")" -f1)
if [ "$mongodb" == "running" ]; then
echo "mongodb 服务状态: $mongodb!"
else
echo "mongodb 服务状态: $mongodb!"
fi
}
# 检测进程是否存在
进程() {
echo "################## pm2 ###################"
# pm2
ps aux | grep -v grep | grep pm2 >/dev/null
if [[ $? -eq 0 ]]; then
echo "pm2 进程存在"
else
echo "pm2 进程不存在"
fi
}
case "$1" in
-/)
磁盘
;;
-all)
system
外网
配置
内存
进程
;;
esac