企业日常巡检shell脚本

Posted Security

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业日常巡检shell脚本相关的知识,希望对你有一定的参考价值。

Linux内部查看系统信息

 

 

 

 

 

 

 

 

 $INTERNET192忽略

 

1 [root@ mysql-master ~]# ip a|grep eth0|grep inet|cut -d\' \' -f6|cut -d\'/\' -f1
2 10.0.0.21
3 
4 [root@ mysql-master ~]# ifconfig eth0 |grep \'inet addr\'|cut -d\':\' -f2|cut -d\' \' -f1
5 10.0.0.21

 1 [root@localhost ~]# ifconfig |grep -w inet |awk \'{print $2}\'|sed -n \'1p\' 

 日常巡检完善脚本:

  1 #!/bin/bash
  2 
  3 function system(){
  4 echo "#########################系统信息#########################"
  5 OS_TYPE=`uname`
  6 OS_VER=`cat /etc/redhat-release`
  7 OS_KER=`uname -a|awk \'{print $3}\'`
  8 OS_TIME=`date +%F_%T`
  9 OS_RUN_TIME=`uptime |awk \'{print $3}\'|awk -F, \'{print $1}\'`
 10 OS_LAST_REBOOT_TIME=`who -b|awk \'{print $2,$3}\'`
 11 OS_HOSTNAME=`hostname`
 12 
 13 echo "    系统类型:$OS_TYPE"
 14 echo "    系统版本:$OS_VER"
 15 echo "    系统内核:$OS_KER"
 16 echo "    当前时间:$OS_TIME"
 17 echo "    运行时间:$OS_RUN_TIME"
 18 echo "最后重启时间:$OS_LAST_REBOOT_TIME"
 19 echo "    本机名称:$OS_HOSTNAME"
 20 }
 21 function network(){
 22 
 23 echo "#########################网络信息#########################"
 24 INTERNET=(`ifconfig|grep ens|awk -F: \'{print $1}\'`)   # centos6 ifconfig | grep Bcast | awk \'{print $2}\' | awk -F : \'{print $2}\'
 25 for((i=0;i<`echo ${#INTERNET[*]}`;i++))
 26 do 
 27   OS_IP=`ifconfig ${INTERNET[$i]}|head -2|grep inet|awk \'{print $2}\'`
 28   echo "      本机IP:${INTERNET[$i]}:$OS_IP"
 29 done
 30 curl -I http://www.baidu.com &>/dev/null # 测试
 31 if [ $? -eq 0 ]
 32     then echo "    访问外网:成功"
 33 else 
 34     echo "    访问外网:失败"
 35 fi
 36 }
 37 
 38 function hardware(){
 39 
 40 echo "#########################硬件信息#########################"
 41 CPUID=`grep "physical id" /proc/cpuinfo |sort|uniq|wc -l`
 42 CPUCORES=`grep "cores" /proc/cpuinfo|sort|uniq|awk -F: \'{print $2}\'`
 43 CPUMODE=`grep "model name" /proc/cpuinfo|sort|uniq|awk -F: \'{print $2}\'`
 44 
 45 echo "     CPU数量: $CPUID"
 46 echo "     CPU核心:$CPUCORES"
 47 echo "     CPU型号:$CPUMODE"
 48 
 49 MEMTOTAL=`free -m|grep Mem|awk \'{print $2}\'`
 50 MEMFREE=`free -m|grep Mem|awk \'{print $7}\'`
 51 
 52 echo "  内存总容量: ${MEMTOTAL}MB"
 53 echo "剩余内存容量: ${MEMFREE}MB"
 54 
 55 disksize=0
 56 swapsize=`free|grep Swap|awk {\'print $2\'}`
 57 partitionsize=(`df -T|sed 1d|egrep -v "tmpfs|sr0"|awk {\'print $3\'}`)
 58 for ((i=0;i<`echo ${#partitionsize[*]}`;i++))
 59 do
 60 disksize=`expr $disksize + ${partitionsize[$i]}`
 61 done
 62 ((disktotal=\\($disksize+$swapsize\\)/1024/1024))
 63 
 64 echo "  磁盘总容量: ${disktotal}GB"
 65 
 66 diskfree=0
 67 swapfree=`free|grep Swap|awk \'{print $4}\'`
 68 partitionfree=(`df -T|sed 1d|egrep -v "tmpfs|sr0"|awk \'{print $5}\'`)
 69 for ((i=0;i<`echo ${#partitionfree[*]}`;i++))
 70 do
 71 diskfree=`expr $diskfree + ${partitionfree[$i]}`
 72 done
 73 
 74 ((freetotal=\\($diskfree+$swapfree\\)/1024/1024))
 75 
 76 echo "剩余磁盘容量:${freetotal}GB"
 77 }
 78 
 79 
 80 function secure(){
 81 echo "#########################安全信息#########################"
 82 
 83 countuser=(`last|grep "still logged in"|awk \'{print $1}\'|sort|uniq`)
 84 for ((i=0;i<`echo ${#countuser[*]}`;i++))
 85 do echo "当前登录用户:${countuser[$i]}"
 86 done
 87  
 88 md5sum -c --quiet /opt/passwd.db &>/dev/null
 89 if [ $? -eq 0 ]
 90 then echo "    用户异常:否"
 91 else echo "    用户异常:是"
 92 fi
 93 }
 94 
 95 function chksys(){
 96 system
 97 network
 98 hardware
 99 secure
100 }
  chksys

 

 

 

 总结:

uname:  系统类型

cat /etc/redhat-relese:  系统版本

uname -a:  系统内核

date +%F_%T:  当前时间

uptime:  运行开机时间

who -b:  最后重启时间

hostname:  本机名称

curl -I http://www.baidu.com &>/dev/null     

echo $?   如果返回值为0,则说明访问成功,返回为1,则访问外网失败

grep "physical id" /proc/cpuinfo  CPU数量

grep "cores" /proc/cpuinfo  CPU核心

model name" /proc/cpuinfo  CPU型号

free -m|grep Mem  内存容量

df -T  磁盘容量

last  最后登录用户

last|grep "still logged in"  同上

 

 

 

 

 

以上是关于企业日常巡检shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本——日常巡检脚本

日常巡检shell脚本

python结合shell脚本实现简单的日常集中巡检

linux12企业实战 -- 40全网日常巡检

日常巡检脚本

日常巡检脚本