check.sh

#! /bin/bash

echo ''

HN=`cat /etc/hostname`

#cat <<EOF

#echo -e "\033[47;34m *------Author:zh------* \033[0m"

#當前系統爲

      echo "$HN-當前系統版本爲"$(cat /etc/redhat-release)

#檢查grtmp進程號

port=`netstat -npl | grep grtmp | grep -v udp|egrep ":80\b|:1935\b|:8981\b|:443\b" |wc -l`

if [ "$port" -lt 4 ]

      then

      echo "$HN-err-grtmp進程數目未達標,請檢查服務狀態!!"

else

      echo "$HN-ok-grtmp進程數目達標"

fi

#zabbix系統是否啓用

if [ "$(netstat -npl | grep zabbix_agent |wc -l)" -lt "1" ]

      then

      echo "$HN-err-zabbix_agent未啓動,請啓用!!"

else

      echo "$HN-ok-zabbix_agent程序已啓動"

fi

#grtmp目錄下文件齊全否

cd /usr/local/grtmp/ #檢查少了那個關鍵文件

grtmp="allow_auth.lua allow_publish.lua allow_push.lua conf grtmp pushdir allow_play_before.lua allow_pull_before.lua auto.lua config.json info.txt ulog.txt allow_play.lua allow_pull.lua cjson.so core.so pulldir"

for i in $grtmp

      do test -e $i || echo "$i-err-不存在,前往/usr/local/grtmp確認!!"

done

 

grtmp_num=`ls /usr/local/grtmp/|egrep "allow_auth.lua|allow_publish.lua|allow_push.lua|conf|grtmp|pushdir|allow_play_before.lua|allow_pull_before.lua|auto.lua|config.json|info.txt|ulog.txt|allow_play.lua|allow_pull.lua|cjson.so|core.so|pulldir" |wc -l`

if [ "$grtmp_num" -ge 17 ];then

      echo "$HN-ok-grtmp目錄文件齊全"

else

      echo "$HN-err-grtmp目錄文件不齊全!!"

fi

#當前grtmp版本號

# echo "$HN-ok-當前grtmp版本號"$(curl -s http://127.0.0.1:8981/query/info | python -m json.tool | grep "\bversion\b")

       echo "$HN-ok-當前grtmp版本號"$(curl -s http://127.0.0.1:8981/query/info|awk -F ':' '{print $2}'|awk -F ',' '{print $1}')

#檢查zabbix後臺服務

      curl --connect-timeout 5 -m 6 --retry 2 -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"host.get","params":{"output":"extend","filter": {"host": ["'$HN'"]}},"auth":"1c649490a4346a783e39748109dacdcb","id":1 }' http://cdn.zabbix.yfcdn.net/api_jsonrpc.php -o /tmp/chk_zabbix_agent.log &>/dev/null

      chmod 777 /tmp/chk_zabbix_agent.log

      zabb_BS=`cat /tmp/chk_zabbix_agent.log | awk -F ',' '{for(i=1;i<NF;i++)print $i}' |grep '"status":"0"' |wc -l`

#ls /tmp/chk_zabbix_agent.log | awk -F ',' '{for(i=1;i<NF;i++)print $i}' |grep '"status":"0"' |wc -l >>/tmp/chk_zabbix_agent.log

if [ "$zabb_BS" == "1" ]

       then

       echo "$HN-ok-設備zabbix監控爲啓用狀態"

else

       echo "$HN-err-設備zabbix監控未添加或者爲禁用狀態或者主機名錯誤!!"

fi

#zabbix.conf依賴腳本

cat /etc/zabbix/zabbix_agentd.conf |egrep -v "^#|^$"|grep "UserParameter="|egrep '\.sh|\.pl|\.py' > /tmp/chk_zabbix_agent.log

                s sed -i 's/\$1//g' /tmp/chk_zabbix_agent.log

                s sed -i 's/\$2//g' /tmp/chk_zabbix_agent.log

                s sed -i 's/\$3//g' /tmp/chk_zabbix_agent.log

                s sed -i 's/\$4//g' /tmp/chk_zabbix_agent.log

                jiao_ben=`cat /tmp/chk_zabbix_agent.log|awk -F ',' '{print $NF}'|awk '{print $NF}'`

for i in $jiao_ben

       do

if [ ! -f $i ]

       then

       echo "$HN-err-/etc/zabbix/zabbix_agentd.conf中的腳本$i在設備上不存在!!"

fi

done

#檢查dns配置是否有2個,並且爲通用中的任意2個

dns=`cat /etc/resolv.conf | egrep "119.29.29.29\b|223.5.5.5\b|114.114.114.114\b|8.8.8.8\b"|wc -l`

if [ "$dns" -lt 2 ]

       then

       echo "$HN-err-dns配置不全,請檢查/etc/resolv.conf!!"

else

       echo "$HN-ok-dns配置齊全"

fi

 

##hosts文件是否有非系統默認值

hosts_num=`cat /etc/hosts | egrep "localhost.*localdomain4|localhost.*localdomain6|^$"|wc -l` &> /dev/null

if [ "$hosts_num" -ne 2 ];then

       echo "$HN-warning-hosts文件有非系統默認值(空)或少配!!"

else

       echo "$HN-ok-hosts文件正常"

fi

#檢查hosts.allow和hosts.deny文件是否標準

cat /etc/hosts.allow | egrep "\b115.*.16\b|^$" &> /dev/null

if [ $? = 0 ]

       then

       echo "$HN-ok-hosts.allow達標"

else

       echo "$HN-err-hosts.allow未標準,請檢查/etc/hosts.allow!!"

fi

host_deny=`cat /etc/hosts.deny |sed -n '13p' | awk -F ' ' '{print $NF}'`

if [ $host_deny == "all" ]

       then

       echo "$HN-ok-hosts.deny達標"

else

       echo "$HN-err-hosts.deny未達標,請檢查/etc/hosts.deny!!"

fi

#檢查當前時間,時區是否正常

duan_time=`rdate -p time.nist.gov |awk '{print $3,$4,$5,$6,$7}' |grep 201` #網絡服務機器返回的時間

if [ "(echo $duan_time|grep 201|wc -l )" == 1 ]

       then

       wget -t 1 -T 5 -S 'ospf.yunfancdn.com/shijian.list' -e http-proxy=v5.yfcdn.net -O /tmp/shijian.list &>/dev/null

      chmod 777 /tmp/shijian.list

      bz_time=`cat /tmp/shijian.list|head -n 1`

else

       bz_time=`date -d "$duan_time" +%s`

fi

local_time1=`date +%s` #本地時間

        local_time=`echo "$local_time1"|awk '{print $1+10}'`

 

        #假如本地時間戳小於網絡服務器時間戳,直接報錯

        #允許有10s差距

if [ "$local_time" -lt "$bz_time" ];then

        echo "$name-err-本地時間小於遠程服務器時間,請進行時間同步!!" >>/tmp/shijian.list

else

        #假如本地時間戳大於或等於網絡時間戳,則判斷其差距是否超過 60s,超過則報錯

        cha_time=`echo "$local_time $bz_time"|awk '{print $1-$2}'`

         if [ "$cha_time" -gt "80" ];then

                        echo "$HN-err-本地時間大於遠程服務器時間,請進行時間同步!!" >>/tmp/shijian.list

        else

                        echo "$HN-ok-當前時間正常"

         fi

fi

 

#機器是否爲礦機,爲礦機時是否有礦工賬號密碼

function judge

{

         Account=`cat /usr/local/grtmp/ulog.txt | grep -v "^$" |grep "\bname\b" |awk -F ":" '{print $2}'|wc -c`

         Password=`cat /usr/local/grtmp/ulog.txt | grep -v "^$" |grep "\bpwd\b" | awk -F ':' '{print $2}'|wc -c`

if [ "$Account" == 5 ]

         then

         echo "$HN-tips-礦機無賬號!!"

elif [ "$Account" != 5 ]

         then

         echo "$HN-tips-礦機有賬號!!"

fi

if [ "$Password" == 4 ]

         then

         echo "$HN-tips-礦機無密碼!!"

elif [ "$Password" != 4 ]

         then

         echo "$HN-tips-礦機有密碼!!"

fi

}

KJ=`hostname | awk '{print substr($1,14)}'`

#if [ "$KJ" == "K" ]

# then

# echo "$HN-tips-$HN爲礦機設備"

# judge

#fi

if [ "$KJ" != "K" ];then

          echo "$HN-tips-非礦機設備!!"

else

          echo "$HN-tips-爲礦機設備!!"

          judge

fi

#echo $HOSTNAME | grep -E "K$" &>/dev/null && (echo "$HN-tips-$HN爲礦機設備" && judge)

 

 

#內存是否低於8G,cpu是否低於8核

free_rest=`free -g | sed -n {2p} | awk '{print $2}'`

if [ "$free_rest" -lt 12 ]

         then

         echo "$HN-err-總內存低於12G!!"

else

         echo "$HN-ok總內存高於12G"

fi

 

cpu_cores=`cat /proc/cpuinfo | grep "cores" | uniq |awk -F ':' '{print $2}'`

if [ "$cpu_cores" -lt 8 ]

         then

         echo "$HN-tips-cpu低於8核!!"

else

         echo "$HN-tips-cpu標準8核"

fi

#lua版本是否標準

 

#function vir

#{

#md5_1=`cat /usr/local/nginx/html/lua/info.txt | grep allow_play.lua |awk '{print $5}'`

#md5_2=`cat /usr/local/nginx/html/lua/info.txt | grep allow_publish.lua |awk '{print $5}'`

#md5_3=`cat /usr/local/nginx/html/lua/info.txt | grep allow_pull.lua |awk '{print $5}'`

#md5_4=`cat /usr/local/nginx/html/lua/info.txt | grep allow_push.lua |awk '{print $5}'`

#md5_5=`cat /usr/local/nginx/html/lua/info.txt | grep allow_auth.lua |awk '{print $5}'`

#md5_6=`cat /usr/local/nginx/html/lua/info.txt | grep allow_play_before.lua |awk '{print $5}'`

#md5_7=`cat /usr/local/nginx/html/lua/info.txt | grep allow_pull_before.lua |awk '{print $5}'`

#if [ "$md5_1" != "6fac93b1f42d506de1f5e77e3e8efad7" ] || [ "$md5_2" != "b805c5ca3301e963a72a8d7b398af28f" ] || [ "$md5_3" != "0b840af015c98fd1c523c7f9b073d5f2" ] || [ "$md5_4" != "7792a82ed250de09e29053e40c87b4e6" ] || [ "$md5_5" != "f7bf4d90e20bc4d32b11bbeab61af723" ] || [ "$md5_6" != "e4d703129fba78b3c4624ff11861d0d4" ] || [ "$md5_7" != "d855a9a020b03fb1c757f3acd6556684" ]

#then

#echo "$HN-err-lu版本不標準,請前往目錄/usr/local/nginx/html/lua/覈對及跟新"

#fi

#}

if [ ! -d /usr/local/grtmp ];then

          echo "/grtmp目錄不存在,正在創建。。。"

          mkdir -p /usr/local/grtmp

fi

lua /usr/local/grtmp/allow_play.lua & >/dev/null

if [ "$?" -eq 0 ]

          then

          echo "$HN-ok-lua版本標準"

else

          echo "$HN-err-lua版本異常!!"

fi

lua_pack=`rpm -qa | grep lua |wc -l`

if [ "$lua_pack" -ge 2 ]

          then

          echo "$HN-ok-有lua包版本爲-lua-devel-5.1.4-15.el7.x86_64"

          echo "$HN-ok-有lua包版本爲-lua-5.1.4-15.el7.x86_64"

else

          echo "$HN-err-無lua包-所需版本lua-devel-5.1.4-15.el7.x86_64!!"

          echo "$HN-err-無lua包-所需版本lua-5.1.4-15.el7.x86_64!!"

fi

 

#檢查ops程序有沒有啓動

if [ "$(ps -ef | grep -v grep|grep ops-agent |wc -l)" -eq 0 ];then

          echo "$HN-err-ops程序可能沒啓動,請檢查!!"

else

          echo "$HN-ok-ops程序已啓動"

fi

#HN=`cat /etc/hostname`

#crontab數目取自點播源站crontab標準數爲參照115.231.46.247

function crontab_cs

{

                   cron_num=`cat /var/spool/cron/root | grep -v "^$" | grep -v "#"| wc -l`

if [ "$cron_num" -eq 0 ];then

       echo -e "$HN-err-沒有配置cron計劃任務"

elif [ "$cron_num" -lt 28 ];then

       echo -e "$HN-tips-cron計劃任務少於28個!!"

fi

}

#戰旗gpush設備判斷crontab數目函數

function zq_gpush

{

                   zqgpush=`s crontab -l|grep gpush|grep -v '^#'|wc -l`

if [ "$zqgpush" -eq 2 ];then

       echo "$HN-ok-爲戰旗gpush設備(計劃任務數目達標)"

       else

       echo "$HN-err-戰旗gpush設備計劃任務數目未達標!!"

fi

}

#調用戰旗gpush設備crontab函數

for i in "ASCCD1C003020P" "OHGXX1C005569P" "KJSWX1K009315P" "AGDHZ1C002143P" "ASHXX1C006967P" "AZJHZ1C001645P" "ATJXX1C005541P"

       do

       if [ $i == $HN ];then

       zq_gpush

       fi

       done

#調用點播源站crontab標準數

if [ "$HN" != "ASCCD1C003020P" -a "$HN" != "OHGXX1C005569P" -a "$HN" != "KJSWX1K009315P" -a "$HN" != "AGDHZ1C002143P" -a "$HN" != "ASHXX1C006967P" -a "$HN" != "AZJHZ1C001645P" -a "$HN" != "ATJXX1C005541P" ];then

       crontab_cs

       echo -e "$HN-本機crontab數目爲:$cron_num"

fi

       echo -e "\033[5;31m↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓$HN-warning-請瀏覽確認本機crontab配置↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓\033[0m"

s crontab -l | grep -v "^$"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章