系统巡检脚本

这个是简单的系统巡检脚本

#!/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

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值