企业日常巡检的shell脚本(包含注释)

这是一个用于企业日常巡检的Linux Shell脚本,包括系统信息、网络信息、硬件信息和安全信息的检查。脚本能显示系统类型、版本、内核、运行时间、网络连接状态、CPU和内存使用情况、磁盘容量等关键信息。
摘要由CSDN通过智能技术生成

脚本的显示效果

#########################系统信息#########################
    系统类型:Linux
    系统版本:CentOS Linux release 7.5.1804 (Core) 
    系统内核:3.10.0-862.el7.x86_64
    当前时间:2020-06-06_15:18:22
    运行时间:4:25
最后重启时间:2020-06-06 18:53
    本机名称:room9pc01.tedu.cn
#########################网络信息#########################
    访问外网:成功
#########################硬件信息#########################
     CPU数量: 1
     CPU核心: 4
     CPU型号: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
  内存总容量: 15928MB
剩余内存容量: 11982MB
  磁盘总容量: 400GB
剩余磁盘容量:286GB
#########################安全信息#########################
当前登录用户:root
    用户异常:是

 

脚本如下:

#!/bin/bash

function system(){    #编写关于查看系统信息的函数
echo "#########################系统信息#########################"
OS_TYPE=`uname`  #定义变量OS_TYPE,存的信息是系统类型,``反引号代表的是执行uname命令的结果而不是字符串
OS_VER=`cat /etc/redhat-release`
OS_KER=`uname -a|awk '{print $3}'`  #awk '{print $3}代表过滤第三行的信息
OS_TIME=`date +%F_%T`
# awk -F, '{print $1}'代表以逗号切分的,第一行信息
OS_RUN_TIME=`uptime |awk '{print $3}'|awk -F, '{print $1}'`
OS_LAST_REBOOT_TIME=`who -b|awk '{print $2,$3}'`
OS_HOSTNAME=`hostname`

echo "    系统类型:$OS_TYPE"
echo "    系统版本:$OS_VER"
echo "    系统内核:$OS_KER"
echo "    当前时间:$OS_TIME"
echo "    运行时间:$OS_RUN_TIME"
echo "最后重启时间:$OS_LAST_REBOOT_TIME"
echo "    本机名称:$OS_HOSTNAME"
}
function network(){   #定义显示网络信息的函数

echo "#########################网络信息#########################"
#定义变量INTERNET存ifconfig命令包涵flags的行,并以:分隔的第一行内容,此内容是一列
INTERNET=(`ifconfig|grep flags|awk -F: '{print $1}'`)
#注意echo ${INTERNET[2]} ---代表显示过滤处理一列的第3个数的具体数据
#echo ${#INTERNET[*]} ---代表第显示过滤处理一列的中总共的行数是多少,*代表所有的
for((i=0;i<`echo ${#INTERNET[*]}`;i++))
do
#定义变量OS_IP存ifconfig命令中包涵${INTERNET[$i]}关键词的head -2前两行中的包含inet行的信息,并提取其中的第
二个关键数
  OS_IP=`ifconfig ${INTERNET[$i]}|head -2|grep inet|awk '{print $2}'`
#${INTERNET[$i]}关键词对应的ip地址OS_IP
  echo "          ${INTERNET[$i]}:$OS_IP"
done
curl -I http://www.baidu.com &>/dev/null
#如果curl -I http://www.baidu.com &>/dev/null能访问成功$?的值是0,不然则是其他的随机数字
if [ $? -eq 0 ]
then echo "    访问外网:成功"
else echo "    访问外网:失败"
fi
}

 

function hardware(){  #定义显示硬件信息的函数

echo "#########################硬件信息#########################"
#过滤出CPU的数量,以数据的大小排序,只显示唯一数字,并统计大概有多少行
CPUID=`grep "physical id" /proc/cpuinfo |sort|uniq|wc -l`
CPUCORES=`grep "cores" /proc/cpuinfo|sort|uniq|awk -F: '{print $2}'`
CPUMODE=`grep "model name" /proc/cpuinfo|sort|uniq|awk -F: '{print $2}'`

echo "     CPU数量: $CPUID"
echo "     CPU核心:$CPUCORES"
echo "     CPU型号:$CPUMODE"

MEMTOTAL=`free -m|grep Mem|awk '{print $2}'`
MEMFREE=`free -m|grep Mem|awk '{print $7}'`

echo "  内存总容量: ${MEMTOTAL}MB"
echo "剩余内存容量: ${MEMFREE}MB"

disksize=0
swapsize=`free|grep Swap|awk {'print $2'}`
#除去df -T命令的第一行并过滤掉包换tmpfs|sr0的行,所剩下的行打印出它的以空格分隔的第三行数据
partitionsize=(`df -T|sed 1d|egrep -v "tmpfs|sr0"|awk {'print $3'}`)
#将每块磁盘的大小相加
for ((i=0;i<`echo ${#partitionsize[*]}`;i++))
do
disksize=`expr $disksize + ${partitionsize[$i]}`
done
((disktotal=\($disksize+$swapsize\)/1024/1024))

echo "  磁盘总容量: ${disktotal}GB"

 

diskfree=0
swapfree=`free|grep Swap|awk '{print $4}'`
partitionfree=(`df -T|sed 1d|egrep -v "tmpfs|sr0"|awk '{print $5}'`)
#将可用的磁盘容量相加
for ((i=0;i<`echo ${#partitionfree[*]}`;i++))
do
diskfree=`expr $diskfree + ${partitionfree[$i]}`
done

((freetotal=\($diskfree+$swapfree\)/1024/1024))

echo "剩余磁盘容量:${freetotal}GB"
}


function secure(){
echo "#########################安全信息#########################"

countuser=(`last|grep "still logged in"|awk '{print $1}'|sort|uniq`)
for ((i=0;i<`echo ${#countuser[*]}`;i++))
do echo "当前登录用户:${countuser[$i]}"
done

md5sum -c --quiet /opt/passwd.db &>/dev/null
if [ $? -eq 0 ]
then echo "    用户异常:否"
else echo "    用户异常:是"
fi
}

function chksys(){
system
network
hardware
secure
}


chksys
 


 

 


 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值