利用shell脚本批量获取主机信息

  • 本文将介绍shell自动化运维脚本。
  • 此脚本将可快速获取Linux主机各类信息到本文文档or屏幕
  1. 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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abel_dwh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值