云盒所有服务检查
#!/bin/bash # 20180819 #云盒服务检查脚本 result_num=0 nginx_ssl="/xdfapp/server/nginx/conf/ssl" gru_ssl="/xdfapp/apps/gru-absolute/conf/spearssl" local_ip=`ip a |grep "scope global" |grep "enp2s0" |awk '{print $2}' |sed 's/\/.*//g'` #ngin 服务检查 netstat -ntpl |grep -E ":11443" |grep LISTEN |grep nginx > /dev/null [ $? -ne 0 ] && echo "1.nginx 服务未启动,请检查" && result_num=$[$result_num+1] [ ! -d $nginx_ssl ] && echo "nginx 服务不支持 https,请检查" && result_num=$[$result_num+1] #长连接服务检查 netstat -ntpl |grep -E ":30000" |grep LISTEN |grep java > /dev/null [ $? -ne 0 ] && echo "2.长连接服务未启动,请检查" && result_num=$[$result_num+1] grep -a monitor /xdfapp/logs/gru-absolute/server-info.log |grep gru-version |grep '7\.0' > /dev/null [ $? -ne 0 ] && echo "gru-absolute 不是7.0版本,请检查" && result_num=$[$result_num+1] if [ ! -d $gru_ssl ];then echo "长连接服务不支持https,请检查" && result_num=$[$result_num+1] fi #redis 服务检查 netstat -ntpl |grep -E ":6379" |grep redis > /dev/null [ $? -ne 0 ] && echo "3.redis 服务未启动,请检查" && result_num=$[$result_num+1] #dns 服务检查 dns_ip=`cat /etc/dnsrecord.txt |awk '{print $1}' |head -1` [ ${local_ip} != ${dns_ip} ] && echo "4./etc/dnsrecord.txt中的ip 和云盒ip 不一致,请检查" && result_num=$[$result_num+1] grep $local_ip /etc/dnsmasq.conf > /dev/null [ $? -ne 0 ] && echo "/etc/dnsmasq.conf 中的ip 和云盒ip 不一致,请检查" && result_num=$[$result_num+1] netstat -ntpl |grep -E ":53|LISTEN" |grep dnsmasq > /dev/null [ $? -ne 0 ] && echo "dns服务未启动,请检查" && result_num=$[$result_num+1] #乐播服务检查 if [ -e /xdfapp/data/version/lebo ];then echo "乐播版本为:`cat /xdfapp/data/version/lebo` OK" else if [ -e /xdfapp/data/lebo_version ];then echo "乐播版本为:`cat /xdfapp/data/lebo_version`" else echo "乐播版本文件不存在,请检查" fi fi grep start_lebo.sh /var/spool/cron/crontabs/okay > /dev/null [ $? -ne 0 ] && echo "5.乐播监控未启动,请检查" && result_num=$[$result_num+1] #启动项服务检查是否有重复项 con_num=`cat /etc/rc.local | grep -v '#' |sort|uniq -c |awk '$1!=1{print $0}'|wc -l` repeat_str=`cat /etc/rc.local | grep -v '#' |sort|uniq -c |awk '$1!=1{print $0}'` if [ ${con_num} -ne 0 ];then result_num=$[$result_num+1] && echo "6.开机启动项有重复项,重复项为 ${repeat_str} 请检查" fi #开机启动项服务检查 start_str=`cat /etc/rc.local | grep -v '#' |sort|uniq -c` echo $start_str |grep "gru-absolute" > /dev/null [ $? -ne 0 ] && echo "长连接服务没有开启自启动,请检查" && result_num=$[$result_num+1] echo $start_str |grep "change_route.sh" > /dev/null [ $? -ne 0 ] && echo "路由脚本没有开启自启动,请检查" && result_num=$[$result_num+1] echo $start_str |grep "startup_nginx.sh" > /dev/null [ $? -ne 0 ] && echo "nginx没有开启自启动,请检查" && result_num=$[$result_num+1] echo $start_str |grep "dnsmasq" > /dev/null [ $? -ne 0 ] && echo "dnsmasq没有开启自启动,请检查" && result_num=$[$result_num+1] echo $start_str |grep "supervisord" > /dev/null [ $? -ne 0 ] && echo "supervisord没有开启自启动,请检查" && result_num=$[$result_num+1] echo $start_str |grep "agent" > /dev/null [ $? -ne 0 ] && echo "agent没有开启自启动,请检查" && result_num=$[$result_num+1] echo $start_str |grep "cswitch" > /dev/null [ $? -ne 0 ] && echo "cswitch没有开启自启动,请检查" && result_num=$[$result_num+1] #计划任务服务检查是否有重复项 cron_start_str=`cat /var/spool/cron/crontabs/root | grep -v '#' |sort|uniq -c |awk '$1!=1{print $0}'|wc -l` repeat_cron_str=`cat /var/spool/cron/crontabs/root | grep -v '#' |sort|uniq -c |awk '$1!=1{print $0}'` if [ ${cron_start_str} -ne 0 ];then result_num=$[$result_num+1] && echo "7.定时任务有重复项,重复项为 ${repeat_cron_str} 请检查" fi #计划任务服务检查 cron_start_str=`cat /var/spool/cron/crontabs/root |grep -v "#"` echo $cron_start_str |grep "pool.ntp.org" > /dev/null [ $? -ne 0 ] && echo "时间同步未在定时任务里,请检查" && result_num=$[$result_num+1] echo $cron_start_str |grep "auto_cut_nginx_log.sh" > /dev/null [ $? -ne 0 ] && echo "auto_cut_nginx_log.sh 未在定时任务里,请检查" && result_num=$[$result_num+1] echo $cron_start_str |grep "clean_log.sh" > /dev/null [ $? -ne 0 ] && echo "clean_log.sh 未在定时任务里,请检查" && result_num=$[$result_num+1] echo $cron_start_str |grep "euler-client" > /dev/null [ $? -ne 0 ] && echo "euler-client 未在定时任务里,请检查" && result_num=$[$result_num+1] if [ $result_num -eq 0 ];then echo "云盒所有服务都正常!" else echo "共 ${result_num}个问题,请检查" fi