linuxシステム巡回検査


#!/bin/bash

#######################
##  :  
##    :     -  

#######################
##        
yum -y install sysstat bc &>/dev/null 

#######################
##     
datename=$(date +%Y%m%d-%H:%M:%S)
ip=`ip a | grep inet|grep 255 |awk '{print $2}'`
tcp_sl=`netstat -tnlp | wc -l`
tcp_name=`netstat -tnlp | awk '{print $4,$7,$8}'|awk 'NR>2' | column -t`
banben=`cat /etc/redhat-release`
user=`whoami`
date1=`date | awk '{print $1,$2,$3,$4,$5 }'`
cpu1=`cat /proc/cpuinfo | grep name |awk -F":" '{print $2}'`
cpu_hz=`cat /proc/cpuinfo |grep MHz |awk -F":" '{print $2}'`
bit=`getconf LONG_BIT`
cpu_fz=`uptime | awk -F"average:" '{print $2,$3}'`
cpu_zy=`ps auxw | head -1;ps auxw|sort -rn -k4|head -5`
root_size=`df -TH |grep root |awk '{print $3}'`
root_size1=`df -TH |grep root |awk '{print $5}'`
root_size2=`df -TH |grep root |awk '{print $6}'`
swap_size=` free -h |grep wap |awk '{print $2}'`
swap_size1=` free -h |grep wap |awk '{print $4}'`
mem_size=`free -h |grep em |awk '{print $2}'`
mem_size1=`free -h |grep em |awk '{print $4}'`
io1=` iostat -x 1 1| grep sda |awk '{print $14}'`
io=`iostat -x 1 1`
dlu=`last | head`
if [ `echo "$io1 > 70" | bc` -eq 1 ];then
        io_zy= 
else
        io_zy="  "
fi
inode1=`df -i |head -2`

#########################
##     
ip_ll(){
ipll1=` cat /proc/net/dev | column -t`
echo "**( . . . . . )***********************************************************************
                           
$ipll1

------------------------------------------------------------------------------------------------
                               
  "
}
ping1(){
ping -c 1 www.baidu.com &>/dev/null
if [ $? -eq 0 ];then
ping_tong=else
ping_tong=fi
echo "------    :$ping_tong   "
}

nginx1(){
rpm -qa | grep nginx &>/dev/null 
if [ $? -eq 0 ];then
        netstat -tnlp | grep nginx &>/dev/null
if [ $? -eq 0 ];then
        echo "------nginx:      !   "
else
        echo "------nginx:     !     "
fi
else    echo "------   nginx !         "
fi
}

httpd1(){
rpm -qa | grep httpd &>/dev/null
if [ $? -eq 0 ];then
        netstat -tnlp | grep httpd &>/dev/null
if [ $? -eq 0 ];then
        echo "------httpd:      !   "
else
        echo "------httpd:     !     "
fi
else    echo "------   httpd !         "
fi
}

mysql1(){
rpm -qa | grep mysql &>/dev/null
if [ $? -eq 0 ];then
        netstat -tnlp | grep mysql &>/dev/null
if [ $? -eq 0 ];then
        echo "------mysql:      !   "
else
        echo "------mysql:     !     "
fi
else    echo "------   mysql !         "
fi
}

keepalived1(){
rpm -qa | grep keepalived &>/dev/null
if [ $? -eq 0 ];then
        netstat -tnlp | grep keepalived &>/dev/null
if [ $? -eq 0 ];then
        echo "------keepalived:      !   "
else
        echo "------keepalived:     !     "
fi
else    echo "------   keepalived !         "
fi
}

redis1(){
rpm -qa | grep redis &>/dev/null
if [ $? -eq 0 ];then
        netstat -tnlp | grep redis &>/dev/null
if [ $? -eq 0 ];then
        echo "------redis:      !   "
else
        echo "------redis:     !     "
fi
else    echo "------   redis !         "
fi
}

service1(){
echo " "
echo "-----------------      ----------------------"
runing1=`systemctl list-units --type=service --state=running --no-pager | grep ".service"`
enable1=`systemctl list-unit-files --type=service --state=enabled --no-pager | grep "enabled"`
runing2=`systemctl list-units --type=service --state=running --no-pager | grep ".service"| wc -l`
enable2=`systemctl list-unit-files --type=service --state=enabled --no-pager | grep "enabled"| wc -l`
echo " "
echo "-------------       .  $runing2 -----------
$runing1  
"
echo ""
echo "------------         .  $enable2  ---------
$enable1
"
}

jhrw(){
team=`cat /etc/passwd |cut -f 1 -d :`
for user in ${team}
do
 crontab -l -u $user > /dev/null 2>&1
if [ $? -eq 0 ];then
user1=`crontab -l -u $user`
user2=`crontab -l -u $user |wc -l`
        echo " "
        echo "   :$user$user2 
--------      -------
$user1"
        echo ""
 fi
done
}
userjc(){
username=`cat /etc/passwd |awk -F":" '{print $1}'`
for name in $username
do
pass1=`chage -l $name | column -t|awk 'NR==1';chage -l $name | column -t|awk 'NR==2'`
        echo ""
        echo "------  :$name-------"
        echo "$pass1"
done
}

##########################
##     
echo "
-------------------------------------------------------------------------------------------
                      :$user$date1$banben   $bit 


**(C.P.U. . )****************************************************************************
                       :$cpu1
                       :$cpu_hz   

--(c.p.u.  )-----------------------------------------------------------------------------
           :$cpu_fz  (5  /10  /15  )
-------------------------------------------------------------------------------------------
    5         :
$cpu_zy

                 

**( . . . )****************************************************************************
   root       :$root_size
   root        :$root_size1      $root_size2
-------------------------------------------------------------------------------------------                     
                             iNode       
$inode1
-------------------------------------------------------------------------------------------
                          io  $io_zy       
$io


**( . . . )****************************************************************************
         :$mem_size
          :$mem_size1
           :$swap_size
            :$swap_size1


**(I.P. . )******************************************************************************
   ip
$ip


**( . . . )****************************************************************************
                                $tcp_sl   !
-------------------------------------------------------------------------------------------
         |    id /                                        
$tcp_name  


" > /tmp/$datename.log

###############################
##     
ip_ll >> /tmp/$datename.log
ping1 >> /tmp/$datename.log
echo " " >>  /tmp/$datename.log
echo "---------      --------" >>  /tmp/$datename.log
nginx1>> /tmp/$datename.log
httpd1>> /tmp/$datename.log
mysql1>> /tmp/$datename.log
redis1>> /tmp/$datename.log
keepalived1>> /tmp/$datename.log
service1>> /tmp/$datename.log
echo "-----------    -------------
$dlu"  >> /tmp/$datename.log
echo "----------      ----------" >> /tmp/$datename.log
jhrw >> /tmp/$datename.log
echo "---------       ---------" >> /tmp/$datename.log
userjc >> /tmp/$datename.log

###############################
##     
read -p "(        ,      '1')" sr

if [ $sr = 1 ];then

        clear 
        cat /tmp/$datename.log 
else
        echo "    ,    !    /tmp/$datename.log ,    !  "

        exit
fi