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