最近新部署的项目叫多,服务器下来的也不少,如果我们手动输入命令去检查服务器配置信息,要花费大量的时间,特此,使用了点时间编写了个shell脚本,方便我们进行服务器检查!!!
需求说明:
1.检查服务器版本及内核信息
2.检查CPU情况
3.检查硬盘分区情况
4.检查服务器网络IP情况
5.检查基础配置信息
注意:目前仅在cos7版本下测试没有问题,其他环境下若需要使用,请自行修改脚本内容!!
#!/bin/bash
#This script is used to check the basic of server
#wright by skyfans
#date:20181207
#system info 系统信息
system_info() {
echo "**********************************************"
echo "system info(系统统计情况)如下~~~~~~~~~~~~~"
echo
echo " System-release(操作系统版本) : `cat /etc/redhat-release`"
echo " Kernel-release(内核版本) : `uname -a|awk '{print $1,$3}'`"
echo " Server-Model (服务器型号): `dmidecode | grep "Product Name:"|sed -n '1p'|awk -F': ' '{print $2}'`"
echo
}
#CPU info CPU信息
cpu_info() {
echo "**********************************************"
echo "CPU info(CPU统计情况)如下~~~~~~~~~~~~~"
echo
echo " Frequency(频率信息) : `cat /proc/cpuinfo | grep "model name" | uniq |awk -F': ' '{print $2}'`"
echo " CPU cores: `cat /proc/cpuinfo | grep "cpu cores" | uniq |awk -F': ' '{print $2}'`"
echo " Logic Count(逻辑CPU) : `cat /proc/cpuinfo | grep "processor" | sort -u| wc -l `"
echo " Physical Count(物理CPU) : `cat /proc/cpuinfo | grep "physical" | sort -u| wc -l`"
#echo " Cache size : `cat /proc/cpuinfo| grep "cache size"|uniq|awk '{print $4,$5}'`"
echo
}
#memory info 内存
mem_info() {
memory=`dmidecode |grep "Range Size"|head -1|awk '{print $3$4}'`
#mem_size=`echo "This server has ${memory} memory."`
echo "**********************************************"
echo "Memory info(内存统计情况)如下~~~~~~~~~~~~~"
echo
echo " Total (内存大小总计): ${memory}"
echo " Count : `dmidecode |grep -A16 "Memory Device$"|grep Size|awk '{if($2!~/No/) print $0}'|wc -l`"
dmidecode |grep -A20 "Memory Device$"|grep Size|sed '{s/^ */ /g};{/No/d}'
echo
}
#disk partitions 硬盘分区
swap_pos=`cat /proc/swaps|sed -n '2p'|awk '{print $1}'`
partition_info() {
echo "**********************************************"
echo "磁盘统计情况如下~~~~~~~~~~~~~"
echo
echo " Hard disk info(磁盘统计情况):"
echo
echo "`fdisk -l|grep Disk|awk -F, '{print $1}'`"
echo "**********************************************"
echo " Partition info(分区信息统计情况):"
echo
df -Th | grep -v Filesystem | sed "s:none:${swap_pos}:"
echo
}
#network info 网卡情况
wangka=`ls /etc/sysconfig/network-scripts |grep ifcfg |awk '{print $1}' |sed -n '1p' |cut -c 7-`
network_info() {
ipis=`ip a show dev ${wangka}| grep -w inet | awk '{print $2}' |awk -F '/' '{print $1}'`
echo "**********************************************"
echo "Network info(网络统计情况)如下~~~~~~~~~~~~~"
echo
echo " Network adapter info(网卡统计情况): ${wangka}"
echo
echo " ip 为:${ipis}"
echo
}
#iptables selinux 防火墙、selinux
sestatus=`cat /etc/selinux/config |grep SELINUX=disabled|awk -F= '{print $2}'`
ipstatus=`systemctl status firewalld |grep Active | awk -F: '{print $2}' |awk '{print $2}'|cut -d '(' -f 2 |cut -d ')' -f 1`
maxfile=`ulimit -n`
ipselinux_info() {
echo "**********************************************"
echo "服务器基础配置如下~~~~~~~~~~~~~"
echo
#查看selinux情况
echo "SELinux status is : ${sestatus}"
##echo "`service iptables status|sed 's/Firewall/Iptables/g'`" (如果是6版本信息,放开此条语句,注释下一条语句)
echo
echo "iptales status is (防火墙状态为) : ${ipstatus}"
echo
echo "open file is(文件最大打开连接数) : ${maxfile}"
echo
echo "languzge(服务器字符集为) : " $LANG
echo "**********************************************"
}
system_info
cpu_info
mem_info
partition_info
network_info
ipselinux_info