系统版本centos7
shell代码
#!/bin/bash
cpu_info(){
#cpu信息 /proc/cpuinfo里
#cpu 型号
cpu_model=$(cat /proc/cpuinfo |grep "model name"|uniq |awk -F ':' '{print $2}')
echo "cpu的型号信息:${cpu_model}"
#cpu的核心数
cpu_core=$(cat /proc/cpuinfo |grep "core id"|uniq |wc -l)
echo "cpu的核心数:${cpu_core}"
#cpu的物理个数
cpu_physical=$(cat /proc/cpuinfo |grep "physical id"|uniq |wc -l)
echo "cpu的物理个数:${cpu_physical}"
}
mem_info(){
#mem信息
#内存总量
mem_total=$(free -m|awk '/Mem/{print $2}')
echo "内存总量:${mem_total}"
#内存使用量
mem_used=$(free -m|awk '/Mem/{print $3}')
echo "内存使用量: ${mem_used}"
#内存剩余使用量
mem_free=$(free -m |awk '/Mem/{print $4}')
echo "内存剩余使用量: ${mem_free}"
#内存使用率
#内存使用率=$mem_used/$mem_total
Percent_mem_used=$(echo "scale=2;${mem_used}/${mem_total}*100"|bc)
echo "内存使用率:${Percent_mem_used}%"
#剩余内存使用率
#剩余内存使用率=$mem_free/$meme_total
Percent_mem_free=$(echo "scale=2;${mem_free}/${mem_total}*100"|bc)
echo "剩余内存使用率:${Percent_mem_free}%"
}
disk_info(){
#磁盘信息
#对磁盘读写进行监控,并输出结果
yum -y install sysstat
iostat
#磁盘总量
disk_total=$(lsblk |awk '/disk/{print $4}')
echo "磁盘总量:${disk_total}"
#磁盘剩余总量
sum=0
a=($(df -T |awk -F' ' '{print $5}' |sed '1d'))
for i in ${a[@]}
do
let sum=sum+$i
done
diskfree=$(($sum/1024/1024))
echo "磁盘剩余总量为:${diskfree}GB"
#对文件系统进行检查,查看使用率是否达到80%,并输出结果
df -h|awk 'NR>1 {if ($5>80) print $1}'
}
net_info(){
#网络信息
#获取主机ip
net_addr=$(ifconfig ens33 | grep netmask | awk '{print $2}'})
echo "主机ip地址为:${net_addr}"
#能否ping通外网
ping -c1 www.baidu.com >/dev/null
if [ $? -eq 0 ]; then
echo "net is ok"
else
echo "please check network !!"
fi
#统计网卡流量
RX=$(ifconfig ens33|grep RX|head -n1|awk '{print $6}'|awk -F'(' '{print $2}')
echo "网卡流入的量为:${RX}MB"
TX=$(ifconfig ens33|grep TX|head -n1|awk '{print $6}'|awk -F'(' '{print $2}')
echo "网卡流出的量为:${TX}MB"
}
#系统信息
sys_info(){
OS_TYPE=`uname`
echo " 系统类型:$OS_TYPE"
OS_VER=`cat /etc/redhat-release`
echo " 系统版本:$OS_VER"
OS_KER=`uname -r`
echo " 系统内核:$OS_KER"
OS_TIME=`date`
echo " 当前时间:$OS_TIME"
OS_RUN_TIME=`uptime |awk '{print $3}'|awk -F ',' '{print $1}'`
echo " 运行时间:$OS_RUN_TIME"
OS_LAST_REBOOT_TIME=`who -b|awk '{print $2,$3}'`
echo "最后重启时间:$OS_LAST_REBOOT_TIME"
OS_HOSTNAME=`hostname`
echo "本机名称:$OS_HOSTNAME"
}
sec_info(){
#安全信息
#获取系统的环境变量
#将环境变量的信息重定向到文件
env >/opt/env
#生成md5校验码
md5sum /opt/env >/opt/env.db
#检测md5值
md5sum -c /opt/env.db
if [ $? -eq 0 ]; then
echo "ok"
else
echo "系统可用被黑了!!"
fi
}
service_info(){
netstat -lptnu|grep 3306
if [ $? -eq 0 ]; then
echo "mysql service is ok"
else
echo "please check mysql service"
fi
}
check_website(){
#curl选项
#-I 仅测试HTTP头
#-m 10 最多查询10s
#-o /dev/null 屏蔽原有输出信息
#-s silent 模式,不输出任何东西
#-w %{http_code} 控制额外输出
code=$(curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com)
if [ $code -eq 200 ]; then
echo "website is ok"
else
echo "please check website"
fi
}
#函数调用每两秒循环一次
while :
do
cpu_info
mem_info
disk_info
net_info
sys_info
sec_info
service_info
check_website
sleep 2
done