快速获得服务器基本信息(debian centos)shell脚本
先上图后上shell脚本(适用于centos和debian系列)
cat check.sh #!/bin/bash #-------------------------------------------------- #Date:June 15 2015 #Author:jimmygong #Mail:[email protected] #Function: #Version:1.0 #apt-get -y install dmidecode --force-yes or yum -y install dmidecode #apt-get -y install pciutils --force-yes or yum -y install pciutils #apt-get -y install curl --force-yes or yum -y install curl #-------------------------------------------------- set -o nounset line=‘======================================================================‘ bluecolor=‘\E[1;32m‘ if [[ `id -u` -ne 0 ]] then echo "sctipts need root" exit 0 fi function os () { manufacturer=$(dmidecode -s system-manufacturer) product=$(dmidecode -s system-product-name) sn=$(dmidecode -s system-serial-number) nu=$(dmidecode|grep "Height") kernel=$(uname -r) if [[ -e /etc/debian_version ]] then release1=$(cat /etc/debian_version) echo -e "${bluecolor}"Os:"Debian${release1}\n${line}" elif [[ -e /etc/redhat-release ]] then release2=$(cat /etc/redhat-release) echo -e "${bluecolor}"Os:"${release2}\n${line}" else echo "unkown release" fi if [[ -e /boot/grub/menu.lst ]] then grub1=$(cat /boot/grub/menu.lst|egrep -v "^#|^$") echo -e "Grub:${grub1}\n${line}" else grub2=$(cat /etc/default/grub|egrep -v "^#|^$") echo -e "Grub:${grub2}\n${line}" fi echo -e "Manufacturer:${manufacturer}" echo -e "Product:${product}" echo -e "Sn:${sn}" echo -e "U:${nu}\n${line}" } function cpu () { mode=$(getconf LONG_BIT) counts=$(cat /proc/cpuinfo|grep "physical id"|sort|uniq -c|wc -l) cores=$(grep ‘cpu cores‘ /proc/cpuinfo|uniq|awk -F : ‘{print $2}‘ |sed ‘s/^[ \t]*//g‘) processor=$(cat /proc/cpuinfo|grep "processor"|wc -l) cpu=$(grep ‘model name‘ /proc/cpuinfo|uniq|awk -F : ‘{print $2}‘ |sed ‘s/^[ \t]*//g‘ |sed ‘s/ \+/ /g‘) echo -e "Total Of Physical Cpu:${counts}" echo -e "Number Of Cpu Cores:${cores}" echo -e "Number Of Cpu Processor:${processor}" echo -e "Present Mode Of Cpu:${mode}" echo -e "Cpu Model:${cpu}\n${line}" } function mem () { swap=$(cat /proc/meminfo|grep SwapTotal|awk -F: ‘{print $2}‘|awk -F" " ‘{print $1}‘) swap=$(expr $swap / 1024) mem=$(cat /proc/meminfo|grep MemTotal|awk -F: ‘{print $2}‘|awk -F" " ‘{print $1}‘) memory=$(dmidecode|grep -i -C5 ‘Memory Device‘|grep -v "No Module Installed"|grep -i size|grep -v "Range") memoryslot=$(dmidecode|grep -i -C5 ‘Memory Device‘|grep "No Module Installed"|wc -l) mem=$(expr $mem / 1024) remem=$(free -m|grep cache|awk ‘/[0-9]/{ print $4" MB" }‘) echo -e "Memslot:${memoryslot}" echo -e "Number Of Mem:${memory}" echo -e "Total Of Mem:${mem}MB" echo -e "Total Of Swap:${swap}MB" echo -e "RemainMem:${remem}\n${line}" } function disk () { disk=$(fdisk -l|grep ‘Disk‘|awk -F , ‘{print $1}‘ | sed ‘s/Disk identifier.*//g‘ | sed ‘/^$/d‘) dftotal=$(df -h|grep "^/dev"|grep -v Filesystem) dfinode=$(df -i|grep "^/dev"|grep -v Filesystem) fstab=$(cat /etc/fstab|egrep -v "^#"‘|media|proc‘|awk ‘{print $1,$2,$3,$4}‘) blkid=$(blkid) echo -e "Disktotal:${disk}" echo -e "Dftotal:\n${dftotal}" echo -e "Dfinode:\n${dfinode}" echo -e "Fstab:\n${fstab}" echo -e "Blkid:\n${blkid}\n${line}" } function timezone () { if [[ -e /etc/timezone ]] then timezone1=$(cat /etc/timezone) echo -e "Timezone:${timezone1}\n${line}" else timezone2=$(cat /etc/sysconfig/clock|grep -v "^#"|grep -v "^$"|awk -F"=" ‘{print $2}‘) echo -e "Timezone:${timezone2}\n${line}" fi } function network () { hostnamecmd=$(cat /proc/sys/kernel/hostname) namecmd=$(cat /etc/resolv.conf|grep "nameserver"|egrep -v "^#|^$") innerip=$(hostname -I) outerip=$(curl -s ip.cip.cc) echo -e "Innerip:${innerip}" echo -e "Outerip:${outerip}" echo -e "${namecmd}" echo -e "Hostname:${hostnamecmd}\n${line}" } function ipmi () { lsmodipmi=$(lsmod|grep ipmi) if [[ $? -eq 0 ]] then ipmi=$(ipmitool lan print|grep "IP Address"|sed ‘s/IP Address Source.*//g‘| sed ‘/^$/d‘) echo -e "Ipmi:${ipmi}" fi tty=$(ps aux|grep -w "ttyS1"|grep -v grep||ps aux|grep -w "ttyS0"|grep -v grep) if [[ $? -eq 0 ]] then echo -e "TtyS:${tty}\n${line}" fi } function processid () { ss -s|head -2 net=`netstat -tpnl|grep LISTEN|awk ‘{print $4,$7}‘` echo -e "Netstattpnl:\n${net}" processnum=`ss -pl|awk -F: ‘{print $4}‘|awk -F"," ‘{print $2}‘|sed ‘/^$/d‘|wc -l` for ((i=1;i<=$processnum;i++)) do pid=`ss -pl|awk -F: ‘{print $4}‘|awk -F"," ‘{print $2}‘|sed ‘/^$/d‘|sed -n $i‘p‘` process=`pmap $pid|head -n 2` echo -e "Process:${process}" done echo -e ${line} } function swap () { echo -e "Pid\tSwap\tProgame" num=0 for pid in `ls -1 /proc|egrep "^[0-9]"` do if [[ $pid -le ‘30‘ ]] then continue fi program=$(ps -eo pid,command|grep -w $pid|grep -v grep|awk ‘{print $2}‘) for swap in `grep Swap /proc/$pid/smaps 2>/dev/null|awk ‘{print $2}‘` do let num=$num+$swap done echo -e "${pid}\t${num}\t${program}" num=0 done|sort -nrk2|head echo -e ${line} } function mima () { num=$(cat /etc/passwd|grep "/bin/bash"|awk -F: ‘{print $1}‘|wc -l) for ((i=1;i<=$num;i++)) do user=$(cat /etc/passwd|grep "/bin/bash"|awk -F: ‘{print $1}‘|sed -n $i‘p‘) effeday=$(cat /etc/shadow|grep $user|awk -F: ‘{print $1,$5}‘) echo -e "Shadow:${effeday}" done if [[ -e /etc/sudoers ]] then sudoers=$(cat /etc/sudoers|egrep -v "^#|^$") echo -e "Sudoers:${sudoers}" fi chag=$(chage -l root) echo -e "ChageRoot:\n${chag}\n${line}" } function lastlogin () { if [[ -e /var/log/wtmp ]] then last=$(last|head -n 10) echo -e "Last:\n${last}\n${line}" fi } function limit () { limitcmd=$(cat /etc/security/limits.conf|egrep -v ‘^#|^$‘) if [[ $? -eq 0 ]] then echo -e "Limitconf:\n${limitcmd}\n${line}" fi } function diskcheck () { if [[ -e /usr/local/sbin/MegaCli64 ]] then cmd="/usr/local/sbin/MegaCli64" raid=`$cmd -cfgdsply -aALL|grep "RAID Level"|tail -1|awk -F: ‘{print $1" :"$2}‘` disknum=`$cmd -cfgdsply -aALL|grep "Number Of Drives"|awk -F: ‘{print $2}‘` onlinedisk=`$cmd -cfgdsply -aALL|grep -c "Online"` faileddisk=`$cmd -AdpAllInfo -aALL -NoLog|awk ‘/Failed Disks/ {print $4}‘` criticaldisk=`$cmd -AdpAllInfo -aALL -NoLog|awk ‘/Critical Disks/ {print $4}‘` case "$raid" in "RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0") echo "Raid Level:1";; "RAID Level : Primary-0, Secondary-0, RAID Level Qualifier-0") echo "Raid Level:0";; "RAID Level : Primary-5, Secondary-0, RAID Level Qualifier-3") echo "Raid Level:5";; "RAID Level : Primary-6, Secondary-0, RAID Level Qualifier-3") echo "Raid Level:6";; "RAID Level : Primary-1, Secondary-3, RAID Level Qualifier-0") echo "Raid Level:10";; esac echo "Total Diak Number:$disknum" echo "Online Disk Number:$onlinedisk" echo "Failed Disk Number:$faileddisk" echo "Critical Disk Number:$criticaldisk" $cmd -PDList -aALL|grep "Firmware state" echo -e ${line} fi } function localea () { if [[ -e /etc/default/locale ]] then locale1=$(cat /etc/default/locale|egrep -v "^#|^$") echo -e "CurrLocale:${locale1}" elif [[ -e /etc/sysconfig/i18n ]] then locale2=$(cat /etc/sysconfig/i18n|egrep -v "^#|^$") echo -e "CurrLocale:${locale2}" else echo $LANG fi locale=`locale -a|wc -l` echo -e "LocaleNum:${locale}\n${line}" } function cron () { user=$(ps aux|grep -v USER|awk ‘{print $1}‘|sort -r|uniq) echo -e "RunUser:\n${user}\n${line}" path1="/var/spool/cron/crontabs" path2="/var/spool/cron" if [[ -d $path1 ]] then for user in $(ls -1 $path1) do echo -e "$user:" crontab -l -u $user done else for user in $(ls -1 $path2) do echo -e "$user:" crontab -l -u $user done fi } os cpu mem disk timezone network ipmi processid swap mima lastlogin limit diskcheck localea cron exit 0
本文出自 “7928217” 博客,请务必保留此出处http://7938217.blog.51cto.com/7928217/1662177
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。