攻击场景说明
操作场景
混沌演练现在支持多种攻击场景供用户演练使用,包括体验类、主机资源、主机进程、主机网络、自定义故障和资源运维。通过集成武器模块和功能,用户可以更准确地模拟真实环境故障,及早发现系统可用性等问题,持续提升应用韧性。现已全面支持ECS、BMS和IDC离线设备的IPv6故障演练,通过主机网络类武器的演练,可以帮助用户快速掌握IPv6环境下的故障定位与应急响应能力,确保网络的高可用性与安全性。
约束与限制
- Flexus应用服务器L实例(HCSS)场景:演练任务仅支持L实例单主机,不支持高可用组合场景。
- 云容器引擎 (CCE)场景:演练任务支持的Kubernetes版本需与CCE保持一致,具体版本请参考CCE的Kubernetes版本策略。
攻击场景说明
攻击目标来源 |
攻击场景 |
说明 |
|
---|---|---|---|
弹性云服务器 (ECS) |
体验类 |
小试牛刀 |
不产生任何故障,帮助您了解混沌演练的执行流程。 |
主机资源 |
CPU使用率加压 |
模拟CPU使用率飙升,支持故障紧急终止。 |
|
内存使用率加压 |
模拟内存使用率飙升,支持故障紧急终止。 |
||
磁盘使用率加压 |
模拟磁盘使用率飙升,支持故障紧急终止。 |
||
磁盘IO加压 |
通过不间断读写文件,对磁盘IO加压,支持故障紧急终止。 |
||
主机进程 |
进程号耗尽 |
耗尽系统进程号(PID),不支持故障紧急终止。 |
|
杀进程 |
故障持续期间重复杀进程,支持故障紧急终止;紧急终止或演练结束后演练系统不负责拉起进程,服务需自行保证进程恢复正常。 |
||
主机网络 |
网络延迟 |
模拟网络故障导致链路延迟增大,支持故障紧急终止。 |
|
网络丢包 |
模拟网络故障导致链路产生丢包,支持故障紧急终止(丢包率100%时不支持)。 |
||
网络错包 |
模拟网络故障导致链路产生错包,支持故障紧急终止(错包率100%时不支持)。 |
||
网络包重复 |
模拟网络故障导致链路产生重复包,支持故障紧急终止。 |
||
网络包乱序 |
模拟网络故障导致链路产生包乱序,支持故障紧急终止。 |
||
网络中断 |
模拟节点间网络不通,支持故障紧急终止;请勿填写演练系统和UniAgent服务器的IP地址,否则可能导致演练失败;如需要中断已建立的长连接,中断方向请选择全方向。 |
||
网卡down |
模拟网卡down的情况,因各主机网络配置不同,网卡down后有可能启动网卡失败,请做好恢复网络的应急预案,不支持故障紧急终止。 |
||
篡改DNS域名解析 |
篡改域名地址映射,支持故障紧急终止。 |
||
端口占用 |
模拟系统网络端口被占用(最多100个),支持故障紧急终止。 |
||
整机断网 |
模拟整机断网的情况,拒绝所有基于TCP,UDP,ICMP协议的数据包,只开放22,8002,39604,33552,33554,33557,32552,32554,32557端口,支持故障紧急终止。 |
||
网卡带宽限速 |
限制网卡带宽速度,支持多网卡,支持故障紧急终止。 |
||
网络连接耗尽 |
创建大量到指定IP:Port(服务端)的Socket连接进行消耗,使节点正常请求无法连接到服务端(对服务端处理其他节点的请求可能也有影响),支持故障紧急终止。 |
||
自定义故障 |
自定义脚本 |
用户通过自动化运维的脚本创建脚本,通过执行脚本模拟故障发生的情况,支持故障紧急终止。 |
|
资源运维 |
开机 |
提供ECS/BMS/Flexus批量开机能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
|
关机 |
提供ECS/BMS/Flexus批量关机能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
||
重启 |
提供ECS/BMS/Flexus批量重启能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
||
裸金属服务器 (BMS) |
体验类 |
小试牛刀 |
不产生任何故障,帮助您了解混沌演练的执行流程。 |
主机资源 |
CPU使用率加压 |
模拟CPU使用率飙升,支持故障紧急终止。 |
|
内存使用率加压 |
模拟内存使用率飙升,支持故障紧急终止。 |
||
磁盘使用率加压 |
模拟磁盘使用率飙升,支持故障紧急终止。 |
||
磁盘IO加压 |
通过不间断读写文件,对磁盘IO加压,支持故障紧急终止。 |
||
主机进程 |
进程号耗尽 |
耗尽系统进程号(PID),不支持故障紧急终止。 |
|
杀进程 |
故障持续期间重复杀进程,支持故障紧急终止;紧急终止或演练结束后演练系统不负责拉起进程,服务需自行保证进程恢复正常。 |
||
主机网络 |
网络延迟 |
模拟网络故障导致链路延迟增大,支持故障紧急终止。 |
|
网络丢包 |
模拟网络故障导致链路产生丢包,支持故障紧急终止(丢包率100%时不支持)。 |
||
网络错包 |
模拟网络故障导致链路产生错包,支持故障紧急终止(错包率100%时不支持)。 |
||
网络包重复 |
模拟网络故障导致链路产生重复包,支持故障紧急终止。 |
||
网络包乱序 |
模拟网络故障导致链路产生包乱序,支持故障紧急终止。 |
||
网络中断 |
模拟节点间网络不通,支持故障紧急终止;请勿填写演练系统和UniAgent服务器的IP地址,否则可能导致演练失败;如需要中断已建立的长连接,中断方向请选择全方向。 |
||
网卡down |
模拟网卡down的情况,因各主机网络配置不同,网卡down后有可能启动网卡失败,请做好恢复网络的应急预案,不支持故障紧急终止。 |
||
篡改DNS域名解析 |
篡改域名地址映射,支持故障紧急终止。 |
||
端口占用 |
模拟系统网络端口被占用(最多100个),支持故障紧急终止。 |
||
整机断网 |
模拟整机断网的情况,拒绝所有基于TCP,UDP,ICMP协议的数据包,只开放22,8002,39604,33552,33554,33557,32552,32554,32557端口,支持故障紧急终止。 |
||
资源运维 |
开机 |
提供ECS/BMS/Flexus批量开机能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
|
关机 |
提供ECS/BMS/Flexus批量关机能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
||
重启 |
提供ECS/BMS/Flexus批量重启能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
||
Flexus应用服务器L实例 (HCSS) |
体验类 |
小试牛刀 |
不产生任何故障,帮助您了解混沌演练的执行流程。 |
主机资源 |
CPU使用率加压 |
模拟CPU使用率飙升,支持故障紧急终止。 |
|
内存使用率加压 |
模拟内存使用率飙升,支持故障紧急终止。 |
||
磁盘使用率加压 |
模拟磁盘使用率飙升,支持故障紧急终止。 |
||
磁盘IO加压 |
通过不间断读写文件,对磁盘IO加压,支持故障紧急终止。 |
||
主机进程 |
进程号耗尽 |
耗尽系统进程号(PID),不支持故障紧急终止。 |
|
杀进程 |
HCSS故障持续期间重复杀进程,支持故障紧急终止;紧急终止或演练结束后演练系统不负责拉起进程,服务需自行保证进程恢复正常。 |
||
主机网络 |
网络延迟 |
模拟网络故障导致链路延迟增大,支持故障紧急终止。 |
|
网络丢包 |
模拟网络故障导致链路产生丢包,支持故障紧急终止(丢包率100%时不支持)。 |
||
网络错包 |
模拟网络故障导致链路产生错包,支持故障紧急终止(错包率100%时不支持)。 |
||
网络包重复 |
模拟网络故障导致链路产生重复包,支持故障紧急终止。 |
||
网络包乱序 |
模拟网络故障导致链路产生包乱序,支持故障紧急终止。 |
||
网络中断 |
模拟节点间网络不通,支持故障紧急终止;请勿填写演练系统和UniAgent服务器的IP地址,否则可能导致演练失败;如需要中断已建立的长连接,中断方向请选择全方向。 |
||
网卡down |
模拟网卡down的情况,因各主机网络配置不同,网卡down后有可能启动网卡失败,请做好恢复网络的应急预案,不支持故障紧急终止。 |
||
篡改DNS域名解析 |
篡改域名地址映射,支持故障紧急终止。 |
||
端口占用 |
模拟系统网络端口被占用(最多100个),支持故障紧急终止。 |
||
整机断网 |
模拟整机断网的情况,拒绝所有基于TCP,UDP,ICMP协议的数据包,只开放22,8002,39604,33552,33554,33557,32552,32554,32557端口,支持故障紧急终止。 |
||
资源运维 |
开机 |
提供ECS/BMS/Flexus批量开机能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
|
关机 |
提供ECS/BMS/Flexus批量关机能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
||
重启 |
提供ECS/BMS/Flexus批量重启能力,可能存在状态同步不及时问题,支持故障紧急终止。 |
||
云容器引擎 (CCE) Node类型 |
体验类 |
小试牛刀 |
不产生任何故障,帮助您了解混沌演练的执行流程。 |
主机资源 |
CPU使用率加压 |
模拟CPU使用率飙升,支持故障紧急终止。 |
|
内存使用率加压 |
模拟内存使用率飙升,支持故障紧急终止。 |
||
磁盘使用率加压 |
模拟磁盘使用率飙升,支持故障紧急终止。 |
||
磁盘IO加压 |
通过不间断读写文件,对磁盘IO加压,支持故障紧急终止。 |
||
主机进程 |
进程号耗尽 |
耗尽系统进程号(PID),不支持故障紧急终止。 |
|
杀进程 |
故障持续期间重复杀进程,支持故障紧急终止;紧急终止或演练结束后演练系统不负责拉起进程,服务需自行保证进程恢复正常。 |
||
主机网络 |
网络延迟 |
模拟网络故障导致链路延迟增大,支持故障紧急终止。 |
|
网络丢包 |
模拟网络故障导致链路产生丢包,支持故障紧急终止(丢包率100%时不支持)。 |
||
网络错包 |
模拟网络故障导致链路产生错包,支持故障紧急终止(错包率100%时不支持)。 |
||
网络包重复 |
模拟网络故障导致链路产生重复包,支持故障紧急终止。 |
||
网络包乱序 |
模拟网络故障导致链路产生包乱序,支持故障紧急终止。 |
||
网络中断 |
模拟节点间网络不通,支持故障紧急终止;请勿填写演练系统和UniAgent服务器的IP地址,否则可能导致演练失败;如需要中断已建立的长连接,中断方向请选择全方向。 |
||
网卡down |
模拟网卡down的情况,因各主机网络配置不同,网卡down后有可能启动网卡失败,请做好恢复网络的应急预案,不支持故障紧急终止。 |
||
篡改DNS域名解析 |
篡改域名地址映射,支持故障紧急终止。 |
||
端口占用 |
模拟系统网络端口被占用(最多100个),支持故障紧急终止。 |
||
整机断网 |
模拟整机断网的情况,拒绝所有基于TCP,UDP,ICMP协议的数据包,只开放22,8002,39604,33552,33554,33557,32552,32554,32557端口,支持故障紧急终止。 |
||
网卡带宽限速 |
限制网卡带宽速度,支持多网卡,支持故障紧急终止。 |
||
网络连接耗尽 |
创建大量到指定IP:Port(服务端)的Socket连接进行消耗,使节点正常请求无法连接到服务端(对服务端处理其他节点的请求可能也有影响),支持故障紧急终止。 |
||
云容器引擎 (CCE) Pod类型 |
Pod资源 |
Pod CPU加压 |
模拟Pod CPU使用率飙升,请确认攻击目标可写,否则将导致演练失败,支持故障紧急终止。 |
Pod内存加压 |
模拟Pod内存使用率飙升,请确认攻击目标可写,否则将导致演练失败,支持故障紧急终止。 |
||
Pod磁盘IO加压 |
模拟不断读写IO,支持故障紧急终止。 |
||
Pod磁盘使用率加压 |
模拟K8s容器文件系统加压,在指定目录写入超大文件,支持故障紧急终止。 |
||
Pod进程 |
强制停止Pod实例 |
强制停止Pod,不支持故障紧急终止。 |
|
强制杀掉Pod内的容器 |
强制杀掉Pod内的容器,不支持故障紧急终止。 |
||
Pod网络 |
Pod网络延迟 |
模拟Pod网络故障导致网络延迟增高,支持故障紧急终止(延迟30000毫秒及以上时不支持)。 |
|
Pod网络丢包 |
模拟Pod网络故障导致网络丢包,支持故障紧急终止。 |
||
Pod网络中断 |
模拟Pod到其他IP网络不通,支持故障紧急终止,如需要中断已建立的长连接,中断方向请选择全方向。 |
||
Pod网络包乱序 |
模拟Pod网络故障导致链路产生包乱序,支持故障紧急终止。 |
||
Pod网络包重复 |
模拟Pod网络故障导致链路产生重复包,支持故障紧急终止。 |
||
Pod篡改DNS域名解析 |
在Pod内篡改域名的地址映射,请确认攻击目标的运行用户为root,否则会权限不足导致演练失败,支持故障紧急终止。 |
||
Pod端口屏蔽 |
模拟Pod端口不通,支持故障紧急终止。 |
||
Pod网络隔离 |
模拟Pod访问其他IP网络时被直接拒绝,支持故障紧急终止,如需要拒绝已建立的长连接,方向请选择全方向。 |
||
云数据库 (RDS) |
实例类 |
RDS主备倒换 |
仅支持HA模式的MySQL和PostgreSQL引擎,实例在创建、重启、数据库升级、变更规格、恢复、修改端口、删除用户、创建用户时不能进行此操作,主备倒换不会改变实例的内网地址,不支持故障紧急终止。 |
RDS实例停止 |
同时停止主实例和只读实例,故障持续时长结束后开启实例,支持故障紧急终止。 |
||
分布式缓存服务 (DCS) |
实例类 |
DCS主备倒换 |
切换实例主备节点,只有主备实例支持该操作。不支持故障紧急终止。 |
DCS实例重启 |
重启运行中的DCS缓存实例。清空Redis4.0/Redis5.0/Redis6.0的实例数据,数据清空后,无法撤销,且无法恢复,请谨慎操作。不支持故障紧急终止。 |
||
DCS AZ下电 |
实现该AZ下的所有节点统一下电。不支持故障紧急终止,部分区域不支持该武器。 |
||
云搜索服务 (CSS) |
实例类 |
CSS集群重启 |
重启状态可用的CSS集群。重启期间,kibana和cerebro可能会访问失败。不支持故障紧急终止。 |
文档数据库服务 (DDS) |
实例类 |
备节点强制升主 |
支持副本集、shard和config备节点强制升主。但在主备时延较大的情况下存在失败风险,不支持故障紧急终止。 |
IDC离线资源-虚拟机类型 |
体验类 |
小试牛刀 |
不产生任何故障,帮助您了解混沌演练的执行流程。 |
主机资源 |
CPU使用率加压 |
模拟CPU使用率飙升,支持故障紧急终止。 |
|
内存使用率加压 |
模拟内存使用率飙升,支持故障紧急终止。 |
||
磁盘使用率加压 |
模拟磁盘使用率飙升,支持故障紧急终止。 |
||
磁盘IO加压 |
通过不间断读写文件,对磁盘IO加压,支持故障紧急终止。 |
||
主机进程 |
进程号耗尽 |
耗尽系统进程号(PID),不支持故障紧急终止。 |
|
杀进程 |
故障持续期间重复杀进程,支持故障紧急终止;紧急终止或演练结束后演练系统不负责拉起进程,服务需自行保证进程恢复正常。 |
||
主机网络 |
网络延迟 |
模拟网络故障导致链路延迟增大,支持故障紧急终止。 |
|
网络丢包 |
模拟网络故障导致链路产生丢包,支持故障紧急终止(丢包率100%时不支持)。 |
||
网络错包 |
模拟网络故障导致链路产生错包,支持故障紧急终止(错包率100%时不支持)。 |
||
网络包重复 |
模拟网络故障导致链路产生重复包,支持故障紧急终止。 |
||
网络包乱序 |
模拟网络故障导致链路产生包乱序,支持故障紧急终止。 |
||
网络中断 |
模拟节点间网络不通,支持故障紧急终止;请勿填写演练系统和UniAgent服务器的IP地址,否则可能导致演练失败;如需要中断已建立的长连接,中断方向请选择全方向。 |
||
网卡down |
模拟网卡down的情况,因各主机网络配置不同,网卡down后有可能启动网卡失败,请做好恢复网络的应急预案,不支持故障紧急终止。 |
||
篡改DNS域名解析 |
篡改域名地址映射,支持故障紧急终止。 |
||
端口占用 |
模拟系统网络端口被占用(最多100个),支持故障紧急终止。 |
||
整机断网 |
模拟整机断网的情况,拒绝所有基于TCP,UDP,ICMP协议的数据包,只开放22,8002,39604,33552,33554,33557,32552,32554,32557端口,支持故障紧急终止。 |
||
网卡带宽限速 |
限制网卡带宽速度,支持多网卡,支持故障紧急终止。 |
||
网络连接耗尽 |
创建大量到指定IP:Port(服务端)的Socket连接进行消耗,使节点正常请求无法连接到服务端(对服务端处理其他节点的请求可能也有影响),支持故障紧急终止。 |
||
阿里云-云服务器 |
体验类 |
小试牛刀 |
不产生任何故障,帮助您了解混沌演练的执行流程。 |
主机资源 |
CPU使用率加压 |
模拟CPU使用率飙升,支持故障紧急终止。 |
|
内存使用率加压 |
模拟内存使用率飙升,支持故障紧急终止。 |
||
磁盘使用率加压 |
模拟磁盘使用率飙升,支持故障紧急终止。 |
||
磁盘IO加压 |
通过不间断读写文件,对磁盘IO加压,支持故障紧急终止。 |
||
主机进程 |
进程号耗尽 |
耗尽系统进程号(PID),不支持故障紧急终止。 |
|
杀进程 |
故障持续期间重复杀进程,支持故障紧急终止;紧急终止或演练结束后演练系统不负责拉起进程,服务需自行保证进程恢复正常。 |
||
主机网络 |
网络延迟 |
模拟网络故障导致链路延迟增大,支持故障紧急终止。 |
|
网络丢包 |
模拟网络故障导致链路产生丢包,支持故障紧急终止(丢包率100%时不支持)。 |
||
网络错包 |
模拟网络故障导致链路产生错包,支持故障紧急终止(错包率100%时不支持)。 |
||
网络包重复 |
模拟网络故障导致链路产生重复包,支持故障紧急终止。 |
||
网络包乱序 |
模拟网络故障导致链路产生包乱序,支持故障紧急终止。 |
||
网络中断 |
模拟节点间网络不通,支持故障紧急终止;请勿填写演练系统和UniAgent服务器的IP地址,否则可能导致演练失败;如需要中断已建立的长连接,中断方向请选择全方向。 |
||
网卡down |
模拟网卡down的情况,因各主机网络配置不同,网卡down后有可能启动网卡失败,请做好恢复网络的应急预案,不支持故障紧急终止。 |
||
篡改DNS域名解析 |
篡改域名地址映射,支持故障紧急终止。 |
||
端口占用 |
模拟系统网络端口被占用(最多100个),支持故障紧急终止。 |
||
整机断网 |
模拟整机断网的情况,拒绝所有基于TCP,UDP,ICMP协议的数据包,只开放22,8002,39604,33552,33554,33557,32552,32554,32557端口,支持故障紧急终止。 |
||
网卡带宽限速 |
限制网卡带宽速度,支持多网卡,支持故障紧急终止。 |
||
网络连接耗尽 |
创建大量到指定IP:Port(服务端)的Socket连接进行消耗,使节点正常请求无法连接到服务端(对服务端处理其他节点的请求可能也有影响),支持故障紧急终止。 |
自定义故障
用户通过自动化运维的脚本创建脚本,通过执行脚本模拟故障发生的情况,支持故障紧急终止。

由于自定义故障完全由您编写的脚本决定,所以在使用脚本对弹性云服务器 (ECS)进行攻击时,可能会导致资源使用率飙高、网络发生故障等异常现象,从而存在将弹性云服务器 (ECS)上已安装的UniAgent状态变成离线/异常的风险,请悉知。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#!/bin/bash set +x function usage() { echo "Usage: {inject_fault|check_fault_status|rollback|clean}" exit 2 } function inject_fault() { echo "inject fault" } function check_fault_status() { echo "check fault status" } function rollback() { echo "rollback" } function clean() { echo "clean" } case "$ACTION" in inject_fault) inject_fault ;; check_fault_status) check_fault_status ;; rollback) if [[ X"${CAN_ROLLBACK}" == X"true" ]]; then rollback else echo "not support to rollback" fi ;; clean) clean ;; *) usage ;; esac |
建议按照上述脚本规范进行自定义故障定义。在上述规范中,您可以通过在inject_fault()、check_fault_status()、rollback()、clean()函数内编写自定义的内容来自定义故障注入函数、故障检查函数、故障回滚函数、环境清理函数操作。
按照上述规范,还有两个必填的脚本参数,如下。是否有其余脚本参数由您脚本内容决定。
参数名称 |
参数值 |
参数描述 |
---|---|---|
ACTION |
inject_fault |
演练操作动作,系统后台在演练不同阶段会自动设置对应的值。可以选择:
|
CAN_ROLLBACK |
false |
是否支持回滚;可以选择:
|

在"inject_fault"函数中,请添加一个故障注入成功的标志,并于"check_fault_status"函数中去检测该标志是否存在。
- 若存在,则"check_fault_status"函数可以正常返回(如exit 0)。
- 若不存在,则"check_fault_status"函数可以异常返回(如:exit 1)。
自定义脚本样例
下面为您介绍一个自定义脚本样例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
#!/bin/bash set +x PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH function usage() { echo "Usage: {inject_fault|check_fault_status|rollback|clean}" exit 2 } function inject_fault() { echo "============start inject fault============" if [ ! -d "${SCRIPT_PATH}/${DIR_NAME}" ]; then mkdir -p "${SCRIPT_PATH}/${DIR_NAME}" echo "mkdir ${SCRIPT_PATH}/${DIR_NAME} successfully" fi cd "${SCRIPT_PATH}/${DIR_NAME}" if [ ! -f ${FILE} ]; then touch "${FILE}" echo "create tmp file ${FILE}" touch inject.log chmod u+x "${FILE}" chmod u+x inject.log else echo "append content">${FILE} fi echo "successfully inject">${FILE} echo "============end inject fault============" } function check_fault_status() { echo "============start check fault status============" if [ ! -d "${SCRIPT_PATH}/${DIR_NAME}" ]; then echo "inject has been finished" exit 0 fi cd "${SCRIPT_PATH}/${DIR_NAME}" SUCCESS_FLAG="successfully inject" if [ -f ${FILE} ]; then if [[ "$(sed -n '1p' ${FILE})" = "${SUCCESS_FLAG}" ]]; then echo "fault inject successfully" else echo "fault inject failed" exit 1 fi else echo "inject finished" exit 0 fi sleep ${DURATION} echo "============end check fault status============" } function rollback() { echo "============start rollback============" cd "${SCRIPT_PATH}" if [ -d $DIR_NAME ]; then rm -rf "${SCRIPT_PATH}/${DIR_NAME}" fi echo "============end rollback============" } function clean() { echo "============start clean============" cd "${SCRIPT_PATH}" if [ -d $DIR_NAME ]; then rm -rf "${SCRIPT_PATH}/${DIR_NAME}" fi echo "============end clean============" } case "$ACTION" in inject_fault) inject_fault ;; check_fault_status) check_fault_status ;; rollback) if [[ X"${CAN_ROLLBACK}" == X"true" ]]; then rollback else echo "not support to rollback" fi ;; clean) clean ;; *) usage ;; esac |
脚本入参如下。
参数名称 |
参数值 |
参数描述 |
---|---|---|
ACTION |
inject_fault |
演练操作动作 |
CAN_ROLLBACK |
false |
不支持回滚 |
SCRIPT_PATH |
/tmp |
自定义故障日志所在根目录 |
DIR_NAME |
test_script |
自定义故障日志所在父目录 |
FILE |
test.log |
自定义故障日志名 |
DURATION |
10 |
模拟自定义故障持续时间,单位:秒 (该参数放在inject_fault函数内时不生效) |

- 在样例的“inject_fault”函数中,注入的故障即是“创建一个{FILE}文件,并在{FILE}文件中新增内容”。故障注入成功的标志即为在{FILE}文件中输入了“successfully inject”内容。
- 在样例的“check_fault_status”函数中,会检测{FILE}文件是否存在。若不存在,则可能是故障已经被清理结束,此处返回exit 1。若存在,则检测故障注入成功的标志是否存在,若存在该标志,则表示故障注入成功,此处“sleep {DURATION}”用于模拟故障持续时间;若成功的标志不存在,则说明故障注入失败。