一、进程服务检测自动拉取

运用知识点

. /etc/bashrc   加载用户的环境变量
打点到falcon 里面
执行的日志输出

脚本内容

#!/bin/bash
. /etc/bashrc
region=shdl
host=`hostname`
end_timestamp=`date +%s`
status_num=`yarn application --list|grep AppPre|wc -l`
status=`yarn application --list|grep Pre|awk '{print $6}'`
stream_lock=`cat /home/eos/monitor/stream_lock.log`

if [ $status_num = '1' ] ;then
    > /home/eos/monitor/stream_lock.log    
    if [ $status = 'RUNNING' ] ;then    
        echo -e "\033[32mss_pre process is running\033[0m"
        curl -X POST -d "[{\"metric\": \"eniot_${region}_pre_status\", \"endpoint\": \"eniot_${region}_pre_status\", \"timestamp\": $end_timestamp,\"step\": 60,\"value\": 1,\"counterType\": \"GAUGE\",\"tags\": \"region=$region,host=${host}\"}]" http://127.0.0.1:1988/v1/push &> /dev/null
        
    else
        echo -e "\033[32mss_pre process is error\033[0m"
    curl -X POST -d "[{\"metric\": \"eniot_${region}_pre_status\", \"endpoint\": \"eniot_${region}_pre_status\", \"timestamp\": $end_timestamp,\"step\": 60,\"value\": 2,\"counterType\": \"GAUGE\",\"tags\": \"region=$region,host=${host}\"}]" http://127.0.0.1:1988/v1/push &> /dev/null
    fi    
    
else
    if [ $stream_lock = 0 ] ;then
        echo -e "\033[32mss_pre process is error\033[0m"
        curl -X POST -d "[{\"metric\": \"eniot_${region}_pre_status\", \"endpoint\": \"eniot_${region}_pre_status\", \"timestamp\": $end_timestamp,\"step\": 60,\"value\": 2,\"counterType\": \"GAUGE\",\"tags\": \"region=$region,host=${host}\"}]" http://127.0.0.1:1988/v1/push &> /dev/null
    else

        echo -e "\033[32mss_pre process not running\033[0m"
        curl -X POST -d "[{\"metric\": \"eniot_${region}_pre_status\", \"endpoint\": \"eniot_${region}_pre_status\", \"timestamp\": $end_timestamp,\"step\": 60,\"value\": 0,\"counterType\": \"GAUGE\",\"tags\": \"region=$region,host=${host}\"}]" http://127.0.0.1:1988/v1/push &> /dev/null
        cd /home/eos/energy-os/ss_pre ;sh bin/submit_yarn.sh
        echo 0 > /home/eos/monitor/stream_lock.log
    fi
fi

定时任务中写入

[root@streaming-app0001 cron.d]# cat stream_pre 
*/2 * * * * eos /bin/sh /home/eos/monitor/watchdog_stream.sh >> /home/eos/monitor/watchdog_stream.log 2>&1

二、针对一些特殊输出,如java 版本的输出

java输出的问题

java -version >> 1.log 不输出到文件
java -version >> 1.log 2>&1    会输出到文件

 三、shell的dubug调试模式

1)在指定shell运行版本时加上 '-x'

如。#!/bin/bash   -x

测试脚本如下

demo git:(master) ✗ cat debug.sh
#!/bin/bash -x
 
 
echo "hi"
date
sleep 1
echo "hi"
date

调试结果如下

➜  demo git:(master) ✗ ./debug.sh
+ echo hi
hi
+ date
2019年 1月 7日 星期一 13时24分18秒 CST
+ sleep 1
+ echo hi
hi
+ date

 

posted on 2020-03-12 15:17  可口_可乐  阅读(432)  评论(0编辑  收藏  举报