#! /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 "^$"