- 本文将介绍shell自动化运维脚本。
- 此脚本将可快速获取Linux主机各类信息到本文文档or屏幕
- CPU、内存、磁盘、序列号等等
=============================================================================
*****************This is the statistical information system!*****************
=============================================================================
###############################00.Machine-Info###############################
Machine model : RH2288 V3
Serial number : 2102311QGN10J8eeee342
#################################01.CPU-Info#################################
Physical_cpu_num : 2
model name : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Every_CPU_core_num : 8
Logical_cpu : 32
###############################02.Memory-Info################################
memory_size : 2*16384 MB
memory_type : DRAM
################################03.DISK-INFO#################################
Name Size
/dev/sda: 599.0
###############################04.Adapter-Info###############################
#################################05.HBA-Info#################################
####################06.System-Version And Kernel-Version#####################
System-Version : CentOS Linux release 7.2.1511 (Core)
Kernel-Version : 3.10.0-327.el7.x86_64
##################################07.IP-Info#################################
enp2s0f0 : 10.22.22.1 / 255.255.255.0
enp2s0f0_HWaddr : 34:0a:98:9d:49:1f
----------------------------------------------------------------------------
enp2s0f1_HWaddr : 34:0a:98:9d:49:20
----------------------------------------------------------------------------
Gateway : 10.22.22.1
##############################08.Disk-Mount-Info#############################
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 481G 195G 287G 41% /
devtmpfs devtmpfs 16G 0 16G 0% /dev
tmpfs tmpfs 16G 0 16G 0% /dev/shm
tmpfs tmpfs 16G 1.6G 14G 10% /run
tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda1 xfs 492M 126M 367M 26% /boot
tmpfs tmpfs 3.1G 0 3.1G 0% /run/user/0
/dev/loop0 iso9660 4.1G 4.1G 0 100% /mnt
tmpfs tmpfs 16G 32K 16G 1% /tmp
################################09.Comm-users################################
Comm-Users :
|NAME | UID | LOGIN |
|redis | 1000 | /bin/bash
|ftp_qsy | 1001 | /sbin/nologin
|mysql | 1002 | /sbin/nologin
|www | 1003 | /sbin/nologin
|mycat | 1004 | /bin/bash
|admin | 1005 | /bin/bash
|super | 1006 | /bin/bash
|zabbix | 1007 | /bin/bash
|back_code | 1008 | /sbin/nologin
|dwh | 1009 | /sbin/nologin
###################################10.Java###################################
Java is Ok!
##################################11.Oracle##################################
Oracle is Down!
#################################12.Crontab##################################
no cron_tab!
#############################################################################
#!/bin/bash
#abel
#2017.06
>/tmp/system.txt
machine_model=$(dmidecode -t system | grep "Product Name"| awk -F":" '{print $2}')
serial_num=`dmidecode -t system | grep "Serial Number"| awk -F":" '{print $2}'`
adapter_watch=`lspci | egrep -i --color 'network|ethernet'`
#disk=`lsblk | awk '/^(sd|vd|hd)/'|awk '{print $1,"",$4}'`
disk=`fdisk -l |grep Disk|egrep '/sd|vd|hd/'|awk -F"," '{print $1}'|awk '{print $2,$3}'`
disk_mount=`df -Th`
physical_id=`cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l`
logical_cpu=`cat /proc/cpuinfo| grep "processor"| wc -l`
cpu_core=`cat /proc/cpuinfo|grep "cpu cores"|uniq|awk -F": " '{print $2}'`
cpu_model_name=`cat /proc/cpuinfo|grep "model name"|uniq`
ip_route=`ip route|grep default |awk '{print "Gateway : "$3}'`
mem_size=$(dmidecode | grep -A 16 "Memory Device$" |grep Size:|grep -v "No Module Installed"|sort|uniq -c|awk '{printf $1"*"$3" MB" "\n" "\t\t" " "}')
mem_type=$(dmidecode | grep -A 16 "Memory Device$" |grep Type:|sort|uniq -c|awk '{print $3}')
cron_tab=`crontab -l`
system_version=`cat /etc/*-release |egrep 'Server|Linux|release' |grep -Ev '^NAME|^PRE'|uniq`
kernel_version=`cat /proc/version |awk -F"(" '{print $1}'| awk -F" " '{print $3}'`
system_info=`dmidecode -t system | head -n 15`
comm_users=`awk -F: '{if($3>=1000) {printf "|%-16s| %-14s| %-14s\n", $1,$3,$7}}' /etc/passwd`
echo "=============================================================================" >>/tmp/system.txt
echo "*****************This is the statistical information system!*****************" >>/tmp/system.txt
echo "=============================================================================" >>/tmp/system.txt
echo "" >>/tmp/system.txt
echo "###############################00.Machine-Info###############################" >>/tmp/system.txt
echo "Machine model :${machine_model}" >>/tmp/system.txt
echo "Serial number :${serial_num}" >>/tmp/system.txt
echo "" >>/tmp/system.txt
echo "#################################01.CPU-Info#################################" >>/tmp/system.txt
echo "Physical_cpu_num : ${physical_id}" >>/tmp/system.txt
echo "$cpu_model_name" >>/tmp/system.txt
echo "Every_CPU_core_num : ${cpu_core}" >>/tmp/system.txt
echo "Logical_cpu : ${logical_cpu}" >>/tmp/system.txt
echo "" >>/tmp/system.txt
echo "###############################02.Memory-Info################################" >>/tmp/system.txt
echo "memory_size : $mem_size">>/tmp/system.txt
echo "memory_type : $mem_type">>/tmp/system.txt
echo "" >>/tmp/system.txt
echo "################################03.DISK-INFO#################################" >>/tmp/system.txt
echo "Name Size" >>/tmp/system.txt
echo "$disk" >> /tmp/system.txt
echo "" >>/tmp/system.txt
echo "###############################04.Adapter-Info###############################" >>/tmp/system.txt
echo "$adapter_watch" >>/tmp/system.txt
echo "" >>/tmp/system.txt
echo "#################################05.HBA-Info#################################" >>/tmp/system.txt
for i in `ls -lh /sys/class/fc_host/ | grep -v "total 0"|awk '{print $9}'`
do
echo "$i : `cat /sys/class/fc_host/$i/port_name`" >>/tmp/system.txt
done
echo "" >>/tmp/system.txt
echo "####################06.System-Version And Kernel-Version#####################" >>/tmp/system.txt
echo "System-Version : $system_version" >>/tmp/system.txt
echo "Kernel-Version : $kernel_version" >> /tmp/system.txt
echo "" >>/tmp/system.txt
echo "##################################07.IP-Info#################################" >>/tmp/system.txt
for i in $(cat /proc/net/dev|sed '1,2d'|grep -v "lo"|awk -F ":" '{print $1}')
do
/sbin/ifconfig $i|egrep "inet"|grep -v "inet6"|awk '{print "'$i' :",$2,"/ "$4}' >>/tmp/system.txt
/sbin/ifconfig $i|egrep "ether|HWaddr" |awk '{if( $1=="ether" ) {print "'$i'_HWaddr :",$2} else {print "'$i'_HWaddr :",$5}}' >>/tmp/system.txt
echo "----------------------------------------------------------------------------" >>/tmp/system.txt
done
echo "$ip_route" >> /tmp/system.txt
echo "" >>/tmp/system.txt
echo "##############################08.Disk-Mount-Info#############################" >>/tmp/system.txt
echo "$disk_mount" >>/tmp/system.txt
echo "" >>/tmp/system.txt
echo "################################09.Comm-users################################" >>/tmp/system.txt
echo "Comm-Users : " >>/tmp/system.txt
echo -e '|NAME \t\t | UID \t\t | LOGIN \t\t |'>>/tmp/system.txt
echo "$comm_users" >>/tmp/system.txt
echo "" >>/tmp/system.txt
echo "###################################10.Java###################################" >>/tmp/system.txt
ps -ef | grep java |grep -v grep &>/dev/null
if [ $? -eq 0 ];then
echo "Java is Ok!" >> /tmp/system.txt
echo "##################################11.Oracle##################################" >>/tmp/system.txt
echo "" >>/tmp/system.txt
else
echo "Java is Down!" >> /tmp/system.txt
echo "" >>/tmp/system.txt
echo "##################################11.Oracle##################################" >>/tmp/system.txt
fi
ps -ef | grep oracle |grep -v grep &>/dev/null
if [ $? -eq 0 ];then
echo "Oracle is Ok!" >> /tmp/system.txt
echo "" >>/tmp/system.txt
echo "#################################12.Crontab##################################" >>/tmp/system.txt
else
echo "Oracle is Down!" >> /tmp/system.txt
echo "" >>/tmp/system.txt
echo "#################################12.Crontab##################################" >>/tmp/system.txt
fi
crontab -l &>/dev/null
if [ $? -eq 0 ];then
echo "cron_tab: $cron_tab" >>/tmp/system.txt
echo "#############################################################################" >>/tmp/system.txt
else
echo "no cron_tab!" >>/tmp/system.txt
echo "#############################################################################" >>/tmp/system.txt
fi
cat /tmp/system.txt && rm -rf /tmp/systeminfo.sh && rm -rf /tmp/system.txt