#!/usr/bin/bash
#by:nekoosu2021@outlook.com
cat << EOF
-----------------------------------------------------------------------
Neko系统巡检工具箱 2.0
(\n\n\n");
[a] 查询主机基本信息 ("へ /|");
[b] 查询本机IP地址 ("/\7 ∠_/");
[c] 查询本机用户信息 ("/ │ / /");
[d] 查询根分区的剩余容量 ("│ Z _,< / /`ヽ");
[e] 本机剩余信息显示 ("│ ヽ / 〉");
[f] 直接显示分区 ("Y ` / /");
[g] 显示系统平均负载 ("イ● 、 ● ⊂⊃〈 /");
[h] 显示当前系统下用户的个数 ("() へ | \〈");
[i] 显示当前缓存大小 (">ー 、_ ィ │ //");
[j] 显示当前系统时间并且自动对时 ("/ へ / ノ<| \\");
[k] 下载国内源并自动安装epel源 ("ヽ_ノ (_/ │//");
[l] 永久关闭防火墙及临时关闭selinux ("7 |/");
[m] 查看当前系统版本 ">―r ̄ ̄'ー―_");
[n] CUP详细负载
[q] 退出 by:nekoosu
-----------------------------------------------------------------------
EOF
while :
do
read -p "
请输入字母开始执行: " choice
case $choice in
a|A)
echo "正在检测.."
sleep 2
time=`date +%F-%T`
echo "现在的时间是: " $time
echo "当前的主机名称是: " $HOSTNAME
;;
b|B)
echo "正在检测当前环境,请耐心等待..."
yum -y install net-tools &>/dev/null
echo "当前主机IP地址为:`ifconfig | grep inet | grep 192 | awk '{print $2}'`"
;;
c|C)
echo "正在检测.."
sleep 2
echo "当前的用户是: " $USER
echo "当前的用户标识是: " $UID
;;
d|D)
echo "正在检测.."
sleep 2
tetal=`df | grep / | grep /dev/mapper | awk '{print $3}'`
residue=`df | grep / | grep /dev/mapper | awk '{print $2}'`
result=$((tetal*100/residue))
residue1=`df -Th | grep / | grep /dev/mapper | awk '{print $5}'`
echo "当前主机/分区的百分比使用率为: $result"
echo "当前主机/分区剩余空间为 $residue1"
;;
e|E)
echo "正在检测.."
sleep 2
mem_used=`free -m | grep Mem | awk '{print $3}'`
mem_total=`free -m | grep Mem | awk '{print $2}'`
mem_percent=$((mem_used*100/mem_total))
mem_free=`free -m | grep Mem | awk '{print $4}'`
echo "当前内存使用百分比使用率为: $mem_percent"
echo "当前内存剩余: $mem_free"
;;
f|F)
echo "正在检测.."
sleep 2
echo "当前系统分区如下:
`df -h`"
;;
g|G)
echo "正在检测.."
sleep 2
url=`w | grep load `
echo "系统的平均负载为:`echo ${url:45:30}`"
;;
h|H)
echo "正在检测.."
sleep 2
echo "当前系统下登录的用户为 `who | wc -l`个"
;;
i|I)
echo "正在检测.."
sleep 2
echo "当前系统缓存为 `free -h | grep Mem | awk '{print $4}'`"
read -p "是否清除缓存 [y/n]: " caches
if [ ! "${caches}" = "y" ];then
echo "用户选择了退出."
exit
fi
sync
echo 3 >/proc/sys/vm/drop_caches
sleep 2
echo "内存释放成功"
;;
j|J)
time=`date +%F-%T`
echo "正在进行系统对时,请稍后.."
yum -y install ntpdate &>/dev/null
ntpdate -u ntp1.aliyun.com &>/dev/null
echo "现在的时间是: " $time
;;
k|K)
echo "正在更换国内源及epel源.."
sleep 1
read -p "
=====================================================
警告:此操作可能会删除本机中的其他源,是否继续 [y/n]:
=====================================================
→ " repos
if [ ! "${repos}" = "y" ];then
echo "
用户选择了退出."
exit
fi
echo "正在安装源,此操作可能时间较长,请耐心等待..."
rm -rf /etc/yum.repos.d/* &>/dev/null
yum clean all &>/dev/null
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
echo "系统源更换完成,epel源正在安装..."
yum -y remove epel* &>/dev/null
yum -y install epel-release &>/dev/null
echo "系统源、epel源安装成功"
;;
l|L)
echo "正在关闭防火墙.."
sleep 1
systemctl stop firewalld.service &>/dev/null
echo "正在关闭防火墙的开机自启.."
sleep 1
systemctl disable firewalld &>/dev/null
echo "正在关闭Selinux.."
sleep 1
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config &>/dev/null
setenforce 0 &>/dev/null
echo "防火墙与Selinux已关闭!"
;;
m|M)
echo "当前系统版本为: `cat /etc/redhat-release`"
;;
n|N)
echo "正在安装环境.."
yum -y install net-tools &>/dev/null
DATE=$(date +%F" "%H:%M)
IP=$(ifconfig | grep broadcast |awk '{print $2}')
if !which vmstat &>/dev/null;then
echo "vmstst command no found.Please install procps package"
exit 1
fi
US=$(vmstat |awk NR==3'{print $13}')
SY=$(vmstat |awk NR==3'{print $14}')
IDLE=$(vmstat |awk NR==3'{print $15}')
WAIT=$(vmstat |awk NR==3'{print $16}')
USE=$(($US+$SY))
if [ $USE -ne 1 ];then
echo "
Date: $DATE
Host: $IP
Problem: CPU utilization $USE "
fi
;;
q|Q)
echo "
------------用户选择了退出--------------"
exit
;;
*) echo "
输入错误,请按上方字符输入!
"
esac
done
系统巡检工具箱脚本
最新推荐文章于 2022-05-05 16:09:27 发布