虚机停止、挂起、删除时,发送虚机异常消息

2024-05-05 23:08

本文主要是介绍虚机停止、挂起、删除时,发送虚机异常消息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#!/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

这篇关于虚机停止、挂起、删除时,发送虚机异常消息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962912

相关文章

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

Java报NoClassDefFoundError异常的原因及解决

《Java报NoClassDefFoundError异常的原因及解决》在Java开发过程中,java.lang.NoClassDefFoundError是一个令人头疼的运行时错误,本文将深入探讨这一问... 目录一、问题分析二、报错原因三、解决思路四、常见场景及原因五、深入解决思路六、预http://www

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

SQL Server清除日志文件ERRORLOG和删除tempdb.mdf

《SQLServer清除日志文件ERRORLOG和删除tempdb.mdf》数据库再使用一段时间后,日志文件会增大,特别是在磁盘容量不足的情况下,更是需要缩减,以下为缩减方法:如果可以停止SQLSe... 目录缩减 ERRORLOG 文件(停止服务后)停止 SQL Server 服务:找到错误日志文件:删除