那些年寫過的shell拿出來乾死你丫的
阿新 • • 發佈:2020-12-05
#!/bin/bash # Linux Check Script # author :liupeng dat=`date +%Y-%m-%d` mem=`free -m |grep "Mem" |awk -F ' ' '{print $2}'` vers=`cat /etc/centos-release` ipp=`ifconfig eno1 |grep 'inet' |awk -F ' ' '{print $2}' |sed -n 1p` hn=`hostname` pycpu=`cat /proc/cpuinfo | grep "physical id"|sort | uniq | wc -l` locpu=`cat /proc/cpuinfo | grep "processor"| wc -l` centosversion=`awk '{print $(NF-1)}' /etc/centos-release` resultfile="/tmp/${hn}_${dat}_${ipp}.txt" Physical_CPUs=`grep "physical id" /proc/cpuinfo| sort | uniq | wc -l` Virt_CPUs=`grep "processor" /proc/cpuinfo | wc -l` CPU_Kernels=`grep "cores" /proc/cpuinfo|uniq| awk -F ': ' '{print $2}'` CPU_Type=`grep "model name" /proc/cpuinfo | awk -F ': ' '{print $2}' | sort | uniq` CPU_Arch=`uname -m` SELinux=`/usr/sbin/sestatus | grep "SELinux status: " | awk '{print $3}'` uptime=`uptime | sed 's/.*up \([^,]*\), .*/\1/'` mys=`ps -ef |grep mysql |grep -v 'grep' |wc -l` ora=`ps -ef |grep ora |grep -v 'grep' |wc -l` mongo=`ps -ef | grep mongo | grep -v 'grep' |wc -l ` elasticsearch=`ps -ef | grep elasticsearch | grep -v 'grep' | wc -l` redis=`ps -ef | grep redis | grep -v 'grep' | wc -l` hadoop=`ps -ef |grep hadoop | grep -v 'grep' |wc -l ` storm=`ps -ef |grep storm | grep -v 'grep' |wc -l ` hazelcast=`ps -ef |grep hazelcast | grep -v 'grep' |wc -l ` keepalived=`ps -ef |grep keepalived | grep -v 'grep' |wc -l ` varnish=`ps -ef | grep varnish| grep -v 'grep'| wc -l` rabbitmq=`ps -ef | grep rabbitmq | grep -v 'grep' | wc -l` disk=`df -h` function getjiemian() { echo " " echo " " echo " ******************************伺服器,資料庫日常巡檢*****************************" echo " " echo "-- 伺服器巡檢完畢 !......" echo "-- 伺服器當前日期:${dat}" echo "-- 主機名:${hn}" echo " " echo "=========================================================================" echo "1.記憶體(總):${mem} MB" echo "2.作業系統版本:${vers}" echo "3.IP地址: ${ipp}" echo "4.物理CPU個數:${pycpu}" echo "5.邏輯CPU個數:${locpu}" echo "6.CPU型號:${CPU_Type}" echo "7.CPU架構:${CPU_Arch}" echo "8.SELINUX:${SELinux}" echo "9.系統執行時間:${uptime}" echo "10.系統使用儲存:${disk}" echo "=========================================================================" sleep 5 } function getmemstatus() { echo "" echo "" echo "************************** 記憶體檢查 **************************" if [[ $centosVersion < 7 ]];then free -m else free -h fi } function getdiskstatus() { echo "" echo "" echo "************************** 磁碟檢查 **************************" df -hiP | sed 's/Mounted on/Mounted/'> /tmp/inode df -hTP | sed 's/Mounted on/Mounted/'> /tmp/disk join /tmp/disk /tmp/inode | awk '{print $1,$2,"|",$3,$4,$5,$6,"|",$8,$9,$10,$11,"|",$12}'| column -t } function getservicestatus() { echo "" echo "" echo "************************** 服務檢查 **************************" echo "" if [[ $centosVersion > 7 ]];then #conf=$(systemctl list-unit-files --type=service --state=enabled --no-pager | grep "enabled") process=$(systemctl list-units --type=service --state=running --no-pager | grep ".service") else #conf=$(/sbin/chkconfig | grep -E ":on|:啟用") process=$(/sbin/service --status-all 2>/dev/null | grep -E "is running|正在執行") fi echo "正在執行的服務" echo "--------------" echo "${process}" } function getprocessstatus() { echo "" echo "" echo "************************** 程序檢查 **************************" if [ $(ps -ef | grep defunct | grep -v grep | wc -l) -ge 1 ];then echo "" echo "殭屍程序"; echo "--------" ps -ef | head -n1 ps -ef | grep defunct | grep -v grep fi echo "" echo "記憶體佔用TOP10" echo "-------------" echo -e "PID %MEM RSS COMMAND $(ps aux | awk '{print $2, $4, $6, $11}' | sort -k3rn | head -n 10 )"| column -t echo "" echo "CPU佔用TOP10" echo "------------" top b -n1 | head -17 | tail -11 } function getoracle() { echo "" echo "" echo "************************** oracle資料庫檢查 **************************" if [ ${ora} -gt 0 ];then echo "" echo "1.是否存在Oracle資料庫"; echo "-------------------" echo "YES,Oracle Database Is Running!" else echo "" echo "1.是否存在Oracle資料庫"; echo "-------------------" echo "No,Oracle Database Is Not Running!" fi } function getmysql() { echo "" echo "" echo "************************** mysql資料庫檢查 **************************" if [ ${mys} -gt 0 ];then echo "" echo "2.是否存在MySQL資料庫"; echo "-------------------" echo "YES,MySQL Database Is Running!" else echo "" echo "2.是否存在MySQL資料庫"; echo "-------------------" echo "No,MySQL Database Is Not Running!" fi } function getmongo() { echo "" echo "" echo "************************** mongo資料庫檢查 **************************" if [ ${mongo} -gt 0 ];then echo "" echo "1.是否存在mongo資料庫"; echo "-------------------" echo "YES,Mongo Database Is Running!" else echo "" echo "1.是否存在mongo資料庫"; echo "-------------------" echo "No,Mongo Database Is Not Running!" fi } function getelasticsearch() { echo "" echo "" echo "************************** ElasticSearch引擎檢查 **************************" if [ ${elasticsearch} -gt 0 ];then echo "" echo "2.是否存在ElasticSearch引擎"; echo "-------------------" echo "YES,ElasticSearch Is Running!" else echo "" echo "2.是否存在ElasticSearch引擎"; echo "-------------------" echo "No,ElasticSearch Is Not Running!" fi } function getredis() { echo "" echo "" echo "************************** redis檢查 **************************" if [ ${redis} -gt 0 ];then echo "" echo "1.是否存在redis資料庫"; echo "-------------------" echo "YES,redis Database Is Running!" else echo "" echo "1.是否存在Redis資料庫"; echo "-------------------" echo "No,Redis Database Is Not Running!" fi } function gethadoop() { echo"" echo"" echo "************************** hadoop檢查 **************************" if [ ${hadoop} -gt 0 ];then echo "" echo "2.是否存在 hadoop"; echo "-------------------" echo "YES,hadoop Is Running!" else echo "" echo "2.是否存在hadoop"; echo "-------------------" echo "No,hadoop Is Not Running!" fi } function getstorm() { echo"" echo"" echo "************************** hadoop檢查 **************************" if [ ${storm} -gt 0 ];then echo "" echo "3.是否存在 storm"; echo "-------------------" echo "YES,storm Is Running!" else echo "" echo "3.是否存在storm"; echo "-------------------" echo "No,storm Is Not Running!" fi } function getkeepalived() { echo"" echo"" echo "************************** keeplived檢查 **************************" if [ ${keepalived} -gt 0 ];then echo "" echo "是否存在 keepalived"; echo "-------------------" echo "YES,keepalived Is Running!" else echo "" echo "是否存在keepalived"; echo "-------------------" echo "No,keepalived Is Not Running!" fi } function getvarnish() { echo"" echo"" echo "************************** keeplived檢查 **************************" if [ ${varnish} -gt 0 ];then echo "" echo "5.是否存在 varnish"; echo "-------------------" echo "YES,varnish Is Running!" else echo "" echo "5.是否存在varnish"; echo "-------------------" echo "No,varnish Is Not Running!" fi } function gethazelcast() { echo"" echo"" echo "************************** hazelcast檢查 **************************" if [ ${hazelcast} -gt 0 ];then echo "" echo "5.是否存在 hazelcast"; echo "-------------------" echo "YES,hazelcast Is Running!" else echo "" echo "5.是否存在varnish"; echo "-------------------" echo "No,hazelcast Is Not Running!" fi } function getrabbitmq() { echo"" echo"" echo "************************** rabbitmq檢查 **************************" if [ ${rabbitmq} -gt 0 ];then echo "" echo "6.是否存在 rabbitmq"; echo "-------------------" echo "YES,rabbitmq Is Running!" else echo "" echo "6.是否存在rabbitmq"; echo "-------------------" echo "No,rabbitmq Is Not Running!" fi } function getdockerstatus() { echo "************************** docker status ****************************" docker ps } function getmessege() { err=`egrep -rn "error" /var/log/messages* |awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14}' | sed -n '/^*ERROR/p'` echo "************************** 作業系統錯誤日誌 **************************" echo "作業系統錯誤日誌"; echo "-------------------" echo ${err} } #執行函式掉用 getjiemian; function check() { getjiemian getmemstatus getdiskstatus getservicestatus getprocessstatus getdatabase getmiddleware } #執行檢查並儲存檢查結果 check > ${resultfile} echo " " echo " " echo "檢查結果:" echo "---------" echo "${resultfile}" echo " " echo " " #sed '/^SQL/d' -i /tmp/${resultfile}