本文主要是介绍虚机停止、挂起、删除时,发送虚机异常消息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#!/bin/bash#descrition: #虚机停止、挂起、删除时,发送虚机异常消息 #The log output file:/var/log/docker_terminate_deploy.log # #precondition:mir envionment variables example #LOGSTORE_ID=0672ac9c-c328-496a-bddc-47bb93c8bc12 #ONELOG_SERVER_IP=172.16.81.41 #ONELOG_SERVER_PORT=4564 #ENV_ETCD_SERVER=172.16.70.73:2379 # #steps:ETCD_SERVER_URL=$ENV_ETCD_SERVER_URL EFFECTIVE_ETCD_SERVER_URL="" VM_IP=""#$1:$LINENO #$2:ERROR/DEBUG/INFO #$3:MSG log(){currentTimeStamp=`date "+%Y-%m-%d %H:%M:%S"`#currentTimeStamp=`date -d "$Time" +%s`#currentTimeStamp=`date +%s`((LOG_SEQ_NUM=LOG_SEQ_NUM+1));echo "$LOG_SEQ_NUM $currentTimeStamp sh:docker-terminate-deploy.sh $CD_DEPLOY_ID $CD_EVENT_ID lineNo:$1 $2::$3::" >> /var/log/docker_terminate_deploy.log }getVmIp() {if [ "$SCALR_EXTERNAL_IP" != "" ]thenVM_IP=$SCALR_EXTERNAL_IPelif [ "$SCALR_INTERNAL_IP" != "" ]thenVM_IP=$SCALR_INTERNAL_IPfilog "$LINENO" "DEBUG" "VM_IP is $VM_IP"}#校验ETCD SERVER是否可用 checkEtcdServer(){arr=(${ETCD_SERVER_URL//,/ })for ETCD_URL in ${arr[@]}doETCD_VERSION=`curl -L $ETCD_URL/version`if [ "$ETCD_VERSION" = "" ]thenEXE_RES="1"log "$LINENO" "ERROR" "$ETCD_URL unknow etcd server" elseEFFECTIVE_ETCD_SERVER_URL=$ETCD_URLfidoneif [ "$EFFECTIVE_ETCD_SERVER_URL" = "" ]thenEXE_RES="1"log "$LINENO" "ERROR" "No etcd service available."deploymentFailureexit 1filog "$LINENO" "DEBUG" "effective etcd server > $EFFECTIVE_ETCD_SERVER_URL" }sendCDPhaseLog(){true > /var/log/etcd_event_msg_for_terninate.txtecho "'$ETCD_CDEVENT_JSON'" | python -c "import json,base64,sys;obj=json.loads(base64.b64decode(sys.stdin.read()));obj['shellName']='docker-terminate-deploy.sh';obj['step']='$1';obj['stepStatus']='$2';obj['vmServerId']='$SCALR_SERVER_ID';obj['vmIp']='$VM_IP';print json.dumps(obj)" >> /var/log/etcd_event_msg_for_terninate.txt#generateEventIdif [ "$ETCD_TTL" = "" ]thenETCD_TTL = 2592000fiLOG_MSG=`curl -L $EFFECTIVE_ETCD_SERVER_URL/v2/keys/$ETCD_CD_PHASE_LOG_DIR$CD_EVENT_ID/$VM_IP -XPUT -d ttl=$ETCD_TTL --data-urlencode value@/var/log/etcd_event_msg_for_terninate.txt`log "$LINENO" "DEBUG" "send cd-phase-event[step:$1,stepStatus:$2]. event msg content > $LOG_MSG" }main(){getVmIpcheckEtcdServersendCDPhaseLog "finish" "VMEXCEPTION" }main
这篇关于虚机停止、挂起、删除时,发送虚机异常消息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!