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

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

相关文章

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

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

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