OpenStack无效数据清空脚本

​​​​​​​介绍

在以openstack为底层开发的一些项目中,常常会遇到项目中数据与openstack数据不同步的问题,为了简化清空无效数据的繁琐,提供以下脚本便于运维操作。

环境变量

[root@cloud ~]# cat admin.sh
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://cloud:35357/v3
export OS_IDENTITY_API_VERSION=3

脚本示例

[root@cloud ~]# cat clean.sh
source /root/admin.sh#删除无项目虚拟机
project_id=`openstack project list |awk '{print $2}'`
vms=`nova list  --all-tenants |awk -F'|' '{print $2,$3,$4,$5}'|grep -v "ID"`
ifs_old=$IFS
IFS=$'\n'
echo "开始清除无效虚拟机"
for vm in $vms
do
{
vm_id=`echo $vm |awk '{print $1}'`
p_id=`echo $vm |awk '{print $3}'`
name=`echo $vm |awk '{print $2}'`
if [[ $project_id =~ $p_id ]]
then
sleep 0
else
nova delete $vm_id 2&>/etc/null
echo "清除虚拟机($name)"
fi
}&
done
wait
####################################################################################
echo "无效虚拟机已被清除,下一步清除无效路由器"
#删除无项目路由器
routers=`openstack router list |awk -F'|' '{print $2,$3,$8}' |grep -v "Project"`
for router in $routers
do
{
router_id=`echo $router|awk '{print $1}'`
router_name=`echo $router|awk '{print $2}'`
router_p_id=`echo $router|awk '{print $3}'`
if [[ $project_id =~ $router_p_id ]]
then
sleep 0
else
mysql -uroot -popenstack << EOF
use neutron;
delete from routerroutes  where  router_id="$router_id"
EOF
subnet_ids=`neutron  router-port-list $router_id |awk -F '|' '{print $6}'|grep "subnet_id"|awk -F'"' '{print $4}'`
for i in $subnet_ids
do
neutron router-interface-delete  $router_id $i 2&>/dev/null
done
neutron router-delete $router_id 2&>/dev/null
echo "清除路由器($router_name)"
fi
}&
done
wait
###############################################################################################
echo "无效路由器已被清除,下一步清除无效子网"
nets==`neutron net-list |awk -F'|' '{print $2,$3,$4,$5}'|grep -v "tenant_id"`
for net in $nets
do
{
net_id=`echo $net |awk '{print $1}'`
net_name=`echo $net |awk '{print $2}'`
net_p_id=`echo $net |awk '{print $3}'`
sub_id=`echo $net |awk '{print $4}'`
if [[ $project_id =~ $net_p_id ]]
then
sleep 0
else
mysql -uroot -popenstack << EOF
use neutron;
delete from ports  where  network_id="$net_id";
EOF
if [ -z $sub_id ]
then
sleep 0
else
openstack subnet delete $sub_id
fi
neutron net-delete  $net_id 2&>/dev/null
echo "清除子网($net_name)"
fi
}&
done
wait
echo "清除脚本执行完成,请继续使用平台"

分享、在看与点赞
只要你点,我们就是胖友

来自: 脚本清空openstack无效数据icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247486386&idx=1&sn=a2734c5a301815bfae1beaff54458401&chksm=c31583fef4620ae848727e26d190a1a1576f0b4f053adfb9d43290652d8daf96b64a534ea966&token=355315523&lang=zh_CN#rd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/22033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝图collapseNodes很有用

学到了&#xff0c;选中N个节点后&#xff0c;再右键collapseNode&#xff0c;可以使代码很清晰&#xff0c;双击后可以看到相应的代码&#xff0c;具有层次感。

【python科学文献计量】关于中国知网检索策略的验证,以事故伤害严重程度检索为例

关于中国知网检索策略的验证,以事故伤害严重程度检索为例 1 背景2 文献下载3 数据处理1 背景 由于要进行相关研究内容的综述,需要了解当前我国对于事故伤害严重程度的研究现状,采用国内较为知名的检索网站(中国知网)进行文献数据集检索 由于最近知网出bug,检索的结果在…

【最新鸿蒙应用开发】——使用axios完成手机号注册业务

使用Axios请求实现目标效果图&#xff1a; 短信验证码登录 校验图形验证码&#xff0c;校验通过 发送短信验证码到用户手机上&#xff0c;可通过在线 WebSocket查看&#xff1a;wss://guardian-api.itheima.net/verifyCode 根据 手机号 短信验证码 实现登录 更新图形验证码…

Python环境集成:全方位探索与实战指南

Python环境集成&#xff1a;全方位探索与实战指南 在软件开发领域&#xff0c;Python环境的集成是一项至关重要的任务。它涉及到多个组件的协同工作&#xff0c;以确保Python代码能够顺利运行。本文将从四个方面、五个方面、六个方面和七个方面对Python环境集成进行深入剖析&a…

数据结构设计算法以比较链串S1和链串S2的大小,若S1 < S2,返回-1;若S1 = S2,返回0;否则返回1。

可以使用以下算法来比较两个链串的大小&#xff1a; 创建两个指针&#xff0c;一个指向链串S1的头部&#xff0c;一个指向链串S2的头部。依次比较两个指针指向的节点的值&#xff0c;如果相等&#xff0c;则继续比较下一个节点。如果两个节点的值不相等&#xff0c;则根据节点…

基于React的SSG静态站点渲染方案

基于React的SSG静态站点渲染方案 静态站点生成SSG - Static Site Generation是一种在构建时生成静态HTML等文件资源的方法&#xff0c;其可以完全不需要服务端的运行&#xff0c;通过预先生成静态文件&#xff0c;实现快速的内容加载和高度的安全性。由于其生成的是纯静态资源…

日本指数实时API接口

日本 指数 实时API接口 # Restful API https://tsanghi.com/api/fin/index/JPN/realtime?token{token}&ticker{ticker}指定指数代码&#xff0c;获取该指数的实时行情&#xff08;开、高、低、收、量&#xff09;。 更新周期&#xff1a;实时。 请求方式&#xff1a;GET。…

CV每日论文--2024.6.4

1、Mixed Diffusion for 3D Indoor Scene Synthesis 中文 标题&#xff1a;用于 3D 室内场景合成的混合扩散 简介&#xff1a;这篇论文提出了一种名为MiDiffusion的混合离散-连续扩散模型,用于从给定的房间类型、平面图和可能存在的物体中合成逼真的3D室内场景。 作者指出,该…

【Unity实战篇 】 | Unity实现UGUI颜色渐变,支持透明渐变

前言 【Unity实战篇 】 | Unity实现UGUI颜色渐变&#xff0c;支持透明渐变一、双层颜色渐变1.1 组件属性面板1.2 效果及代码 二、多层颜色渐变2.1 组件属性面板2.2 效果及代码 总结 前言 在Unity中UGUI的实现图片和文字颜色渐变效果是一个很常见的需求。下面就来看一下颜色渐变…

机器学习中的集成学习

&#x1f4ac;内容概要 1 集成学习概述及主要研究领域 2 简单集成技术  2.1 投票法  2.2 平均法  2.3 加权平均 3 高级集成技术  3.1 Bagging  3.2 Boosting  3.3 Bagging vs Boosting 4 基于Bagging和Boosting的机器学习算法  4.1 sklearn中的Bagging算法  4.2 sklea…

python 深浅拷贝

浅拷贝 copy函数就是浅拷贝 copy函数是浅拷贝&#xff0c;只对可变类型的第一层对象进行拷贝 对拷贝的对象开辟新的内存空间进行存储&#xff0c;子对象不会开辟新的空间 list1 [1, 2, 3] list2 [a, list1] list3 list2.copy()print(id(list1)) print(id(list2)) …

Layout软件AD中关于铺铜的技巧

Layout软件AD中关于铺铜的技巧 目录 一.铜的连接方式: 二.关于铜的编辑: 三.Shelve的使用:

探索Linux世界的钥匙:Bash命令详解

标题&#xff1a;探索Linux世界的钥匙&#xff1a;Bash命令详解 引言&#xff1a; 在Linux的世界里&#xff0c;Bash&#xff08;Bourne Again Shell&#xff09;无疑是每个用户和系统管理员的得力助手。作为Linux系统中最常用的shell之一&#xff0c;Bash提供了丰富的命令和强…

1961. 检查字符串是否为数组前缀 - 力扣

1. 题目 给你一个字符串 s 和一个字符串数组 words &#xff0c;请你判断 s 是否为 words 的 前缀字符串 。 字符串 s 要成为 words 的 前缀字符串 &#xff0c;需要满足&#xff1a;s 可以由 words 中的前 k&#xff08;k 为 正数 &#xff09;个字符串按顺序相连得到&#xf…

大型语言模型的工作原理(LLM:从零学起)

目录 一、说明 二、LLM如何运作 三、预训练&#xff1a;基本模型 四、微调&#xff1a;培训助手 五、RLHF&#xff1a;从人类反馈中强化学习 六、提示工程 七、总结 一、说明 这是我们谈论LLM系列的第二篇文章。在本文中&#xff0c;我们旨在为大型语言模型 &#xff08;LLM&am…

Feign @SpringQueryMap将POJO或Map参数注释为查询参数映射

一、 Feign SpringQueryMap支持 OpenFeign QueryMap批注支持将POJO用作GET参数映射。不幸的是&#xff0c;默认的OpenFeign QueryMap注释与Spring不兼容&#xff0c;因为它缺少value属性。 Spring Cloud OpenFeign提供等效的SpringQueryMap批注&#xff0c;该批注用于将POJO或…

企业微信hook接口协议,ipad协议http,chatid转群id

chatid转群id 参数名必选类型说明uuid是String每个实例的唯一标识&#xff0c;根据uuid操作具体企业微信 请求示例 {"uuid":"3240fde0-45e2-48c0-90e8-cb098d0ebe43","chatid":"wrO9o4EAAAeR_nSlmjeX1RWrKAKxN8jQ" } 返回示例 {&…

Flutter 中的 PrimaryScrollController 小部件:全面指南

Flutter 中的 PrimaryScrollController 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架&#xff0c;它允许开发者使用 Dart 语言构建高性能、美观的移动、Web 和桌面应用。在 Flutter 的滚动机制中&#xff0c;PrimaryScrollController 起着至关重…

【银河麒麟V10服务器OS-系统根分区扩容】指导教程手册

【银河麒麟V10服务器OS-系统根分区扩容】指导教程手册 环境信息&#xff1a;VMware虚拟软件16.0 首先查看KylinOS服务器版本&#xff1a;nkvers 备注&#xff1a; (Tercel) 版本是 V10 SP1 版本&#xff0c; (Sword) 版本是 V10 SP2 版本&#xff0c; (Lance) 版本是 V10 …

UE4 使用样条线做鱼儿封闭路径动画

描述&#xff1a;鱼儿的游动动画的特点 1.通常是始终保持Y (Pitch)轴角度不变 2.调头的时候改变的是Z轴角度 效果&#xff1a;调头的时候比较自然 蓝图&#xff1a; 最后为了让鱼儿有恒定的游动速度&#xff0c;增加以下蓝图节点&#xff0c;游动速度为50