这个是简单的系统巡检脚本
#!/bin/bash
##############################################################
# File Name:43.xunjian.sh
# Version:V1.0
# Author:xujunjun
# Organization:xujunjun
# Desc:
##############################################################
#1.基本信息
hostname=`hostname`
ip=`hostname -I |awk '{print $2}'`
ips=`hostname -I |awk '{print $1}'`
name=`cat /etc/os-release |awk -F= 'NR==6{print $2}'|sed -r 's#(.)(.*)(\(.*)$#\2#g'`
uname=`uname -r`
echo=`echo $LANG`
cat <<EOF
################基本信息###################
主机名:${hostname}
内网ip地址:${ip}
公网ip地址:${ips}
系统发行版本:${name}
系统内核版本:${uname}
系统语言字符集:${echo}
###########################################
EOF
#2.系统信息CPU
cpu=`lscpu |awk 'NR==1{print $2}'`
cpuname=`lscpu |awk -F'[ :]+' 'NR==13{print $2,$3,$4,$5,$7}'`
cpusocket=`lscpu |awk 'NR==7{print $4}'`
cpus=`lscpu |awk 'NR==4{print $2}'`
cpuid=`top -bn1 |awk -F'[ ,]+' 'NR==3{print $8}'`
cpuus=`top -bn1 |awk -F'[ ,]+' 'NR==3{print $2}'`
cpusy=`top -bn1 |awk -F'[ ,]+' 'NR==3{print $4}'`
cpuio=`top -bn1 |awk -F'[ ,]+' 'NR==3{print $10}'`
cat <<EOF
################系统CPU信息#################
CPU架构:${cpu}
CPU型号:${cpuname}
CPU颗数:${cpusocket}
CPU核心数:${cpus}
CPU空闲率:${cpuid}
CPU用户使用率:${cpuus}
CPU系统使用率:${cpusy}
CPU io 占用CPU使用率:${cpuio}
############################################
EOF
#3.系统信息内存
total=`free -h |awk 'NR==2{print $2}'`
free=`free -h |awk 'NR==2{print $4}'`
used=`free -h |awk 'NR==2{print $3}'`
aval=`free -h |awk 'NR==2{print $7}'`
swap=`free -h |awk 'NR==3{print $2}'`
swapused=`free -h |awk 'NR==3{print $3}'`
swapfree=`free -h |awk 'NR==3{print $4}'`
cat <<EOF
############系统内存信息#####################
总用内存:${total}
可用内存:${free}
已用内存:${used}
当前可用内存:${aval}
swap总用大小:${swap}
swap使用大小:${swapused}
swap剩余大小:${swapfree}
#############################################
EOF
#4.系统磁盘情况
sd=`lsblk |grep '^sd'|wc -l`
total=`lsblk |grep '^sd'|awk '{print $4}'`
totals=`df -h|awk 'NR==6{print $2}'`
boot=`df -h|awk 'NR==7{print $2}'`
totalss=`df -h|awk 'NR==6{print $5}'`
boots=`df -h|awk 'NR==7{print $5}'`
cat <<EOF
##############系统磁盘信息####################
磁盘个数:${sd}
磁盘大小:${total}
磁盘根分区大小:${totals}
磁盘boot分区大小:${boot}
磁盘根分区使用率:${totalss}
磁盘boot分区大小:${boots}
##############################################
EOF
#5.系统负载
load=`uptime |awk -F'[ ,]+' '{print $9}'`
loads=`uptime |awk -F'[ ,]+' '{print $10}'`
loadss=`uptime |awk -F'[ ,]+' '{print $11}'`
cat <<EOF
##############系统负载信息####################
最近1分钟负载情况:${load}
最近5分钟负载情况:${loads}
最近15分钟负载情况:${loadss}
###############################################
EOF
#6.系统信息用户
user=`grep '/bin/bash' /etc/passwd |wc -l`
name=`grep '/bin/bash' /etc/passwd |awk -F: '{print $1}'|xargs`
names=`grep -v '/bin/bash' /etc/passwd |wc -l`
cat <<EOF
###############系统用户信息######################
可登录用户数量:${user}
可登录用户名字:${name}
虚拟用户数量:${names}
#################################################
EOF
#7.系统信息DNS
dns1=`cat /etc/resolv.conf |awk 'NR==2{print $2}'`
dns2=`cat /etc/resolv.conf |awk 'NR==3{print $2}'`
dig jd.com &>/dev/null
if [ $? -eq 0 ];then
echo " DNS可以用"
else
echo " DNS不可用"
fi
cat <<EOF
################系统DNS信息#######################
DNS1配置:${dns1}
DNS2配置:${dns2}
##################################################
EOF
#8.系统信息yum
echo "####################yum系统信息##############"
yum=`yum repolist |grep epel|wc -l`
if [ $yum -eq 1 ];then
echo " yum有配置epel源"
else
echo " yum没有配置epel源"
fi
yums=`cat /etc/yum.conf |grep centos.org |wc -l`
if [ $yums -eq 1 ];then
echo " 是yum的默认源"
else
echo " 没有配置yum默认源"
fi
echo "###############################################"
#9.selinux是否关闭
echo "################selinux和防火墙是否关闭###############"
selinux=`grep -v '^#' /etc/selinux/config |grep 'SELINUX=' |awk -F= '{print $2}'`
if [ "$selinux" = "disabled" ];then
echo " selinux已关闭"
else
echo " selinux已开启"
fi
system=`systemctl is-active firewalld.service`
if [ "$system" = "unknown" ];then
echo " 防火墙已经关闭"
else
echo " 防火墙开启"
fi
echo "###############################################"
#10.显示开启的端口
port=`ss -lntup |awk 'NR>1{print $5}' |sed 's#.*:##g'|sort -rn|xargs`
stoop=`top -bn1 |awk -F'[ ,]+' 'NR==2{print $8}'`
zombie=`top -bn1 |awk -F'[ ,]+' 'NR==2{print $10}'`
enabld=`systemctl list-unit-files |grep enabled |wc -l`
system=`ps aux |grep nginx |grep -v grep|grep master|wc -l`
if [ $system -eq 1 ];then
echo " nginx服务正常启动服务"
else
echo " nginx服务已停止服务"
fi
sshd=`ps -ef |grep sshd |grep -v grep |grep '/usr/sbin/sshd'|wc -l`
if [ $sshd -eq 1 ];then
echo " sshd远程服务正在运行"
else
echo " sshd远程服务已关闭运行"
fi
mysql=`ps -ef |grep mysql |grep -v grep |grep /bin/sh |wc -l`
if [ $mysql -eq 1 ] ;then
echo " mysql数据库服务正在运行"
else
echo " mysql数据库服务运行失败"
fi
cat <<EOF
###############服务信息##########################
显示开启的端口:${port}
显示后台挂起的进程数量:${stoop}
显示僵尸进程数量:${zombie}
显示开机自启动的服务数量:${enabld}
##############################################
EOF
#11.web服务
url=`curl -I sp.oldboylinux.cn 2>/dev/null |awk 'NR==1{print $2}'`
nat=`ss -ant |grep -v 'LISTEN'|wc -l`
eatab=`ss -ant |grep 'ESTAB'|wc -l`
cron=`crontab -l |grep ntpdate|wc -l`
if [ $cron -eq 1 ];then
echo "定时任务中有时间同步任务"
else
echo "定时任务中没有时间同步任务"
fi
cront=`crontab -l |grep backup|wc -l`
if [ $cront -eq 1 ];then
echo "定时任务中有备份服务"
else
echo "定时任务中没有备份服务"
fi
cat <<EOF
############web服务###################
web服务状态码:${url}
web服务连接数:${nat}
web服务并发数:${eatab}
####################################
EOF