首页 > 其他分享 >F5导出wideip的详细信息,cli脚本

F5导出wideip的详细信息,cli脚本

时间:2023-06-20 16:31:52浏览次数:40  
标签:set wideip F5 get tmsh gtm config pool cli

https://community.f5.com/t5/codeshare/export-gtm-dns-configuration-in-csv-tmsh-cli-script/tac-p/292969#M4969


导出GTM的wideip:

1、tmsh list gtm wideip one-line | awk '{print $0"\n"}' >/var/tmp/wideip.txt

2、tmsh list gtm wideip | awk '/wideip/{printf "%s,",$4;printf "\n"}' > wideip.csv


导出WIDEIP详细信息:


Export GTM/DNS Configuration in CSV - tmsh cli script

使用命令创建脚本

tmsh

create cli script gtm-config-parser

脚本内容如下:

create script gtm-config-parser {

## 粘贴proc那段脚本,注意大括号,不要多了或者少了 ##

}




wq 保存退出

q! 不保存退出


注:列出 gtm pool时,必须指定与pool关联的记录类型(a ,aaaa,cname ,mx、naptr 或 srv)。如需输出AAAA记录,将上述代码标红部分改为

aaaa即可,其余部分无需改动。

2)创建完gtm-config-parser脚本后,如需修改脚本内容,可在通过如下命令对脚本进行编辑

tmsh edit cli script gtm-config-parser 修改cli脚本



生成a记录表:tmsh run cli script gtm-config-parser > /var/tmp/gtm-a.csv



//wideip a 类型的如下:


proc script::run {} {

puts "WIP,LB-MODE,WIP-STATUS,WIP-STATE,POOL-NAME,POOL-LB,POOL-MEMBERS,POOL-FB,LASTRESORT-POOL"

foreach { obj } [tmsh::get_config gtm wideip a all-properties] {

set wipname [tmsh::get_name $obj]

set wippools [tmsh::get_field_value $obj pools]

set lbmode [tmsh::get_field_value $obj "pool-lb-mode"]

set lastresort [tmsh::get_field_value $obj "last-resort-pool"]

foreach { status } [tmsh::get_status gtm wideip a $wipname] {

set wipstatus [tmsh::get_field_value $status "status.availability-state"]

set wipstate [tmsh::get_field_value $status "status.enabled-state"]

}

foreach wippool $wippools {

set pool_name [tmsh::get_name $wippool]

set pool_configs [tmsh::get_config /gtm pool a $pool_name all-properties]

foreach pool_config $pool_configs {

set pool_lb [tmsh::get_field_value $pool_config "load-balancing-mode"]

set pool_fb [tmsh::get_field_value $pool_config "fallback-mode"]

if { [catch { set member_name [tmsh::get_field_value $pool_config "members" ]} err] } {

set pool_member $err

} else {

set pool_member ""

set member_name [tmsh::get_field_value $pool_config "members"]

foreach member $member_name {

append pool_member "[lindex $member 1] "

}

}

puts "$wipname,$lbmode,$wipstatus,$wipstate,$pool_name,$pool_lb,$pool_member,$pool_fb,$lastresort"

}

}

}

}



生成aaaa记录表:tmsh run cli script gtm-config-parser > /var/tmp/gtm-aaaa.csv

//wideip aaaa 类型的如下:


proc script::run {} {

puts "WIP,LB-MODE,WIP-STATUS,WIP-STATE,POOL-NAME,POOL-LB,POOL-MEMBERS,POOL-FB,LASTRESORT-POOL"

foreach { obj } [tmsh::get_config gtm wideip aaaa all-properties] {

set wipname [tmsh::get_name $obj]

set wippools [tmsh::get_field_value $obj pools]

set lbmode [tmsh::get_field_value $obj "pool-lb-mode"]

set lastresort [tmsh::get_field_value $obj "last-resort-pool"]

foreach { status } [tmsh::get_status gtm wideip aaaa $wipname] {

set wipstatus [tmsh::get_field_value $status "status.availability-state"]

set wipstate [tmsh::get_field_value $status "status.enabled-state"]

}

foreach wippool $wippools {

set pool_name [tmsh::get_name $wippool]

set pool_configs [tmsh::get_config /gtm pool aaaa $pool_name all-properties]

foreach pool_config $pool_configs {

set pool_lb [tmsh::get_field_value $pool_config "load-balancing-mode"]

set pool_fb [tmsh::get_field_value $pool_config "fallback-mode"]

if { [catch { set member_name [tmsh::get_field_value $pool_config "members" ]} err] } {

set pool_member $err

} else {

set pool_member ""

set member_name [tmsh::get_field_value $pool_config "members"]

foreach member $member_name {

append pool_member "[lindex $member 1] "

}

}

puts "$wipname,$lbmode,$wipstatus,$wipstate,$pool_name,$pool_lb,$pool_member,$pool_fb,$lastresort"

}

}

}

}


F5导出wideip的详细信息,cli脚本_DNS


标签:set,wideip,F5,get,tmsh,gtm,config,pool,cli
From: https://blog.51cto.com/speediness/6523732

相关文章

  • 【AGC】云数据库返回403client token authorization fail问题
    【关键字】AGC、云数据库、403【问题描述】有开发者反馈在使用AGC云数据库,拿到access_token用户登录返回403clienttokenauthorizationfail的问题。具体如下所述:用接口:https://connect-drcn.dbankcloud.cn/agc/apigw/oauth2/v1/token拿到了access_token,但用这个token去登录时:htt......
  • 20.AQS家族的“外门弟子”:CyclicBarrier
    关注王有志,一个分享硬核Java技术的互金摸鱼侠欢迎你加入Java人的提桶跑路群:共同富裕的Java人今天我们来学习AQS家族的“外门弟子”:CyclicBarrier。为什么说CyclicBarrier是AQS家族的“外门弟子”呢?那是因为CyclicBarrier自身和内部类Generation并没有继承AQS,但在源码的实现中......
  • 回答朋友提问:Fiori UI 中如何知道当前系统 Client ID (一)
    今天我的SAP开发技术交流群里,有朋友问这样的问题:在Fiori界面中,怎么查看当前Client?我觉得要回答这个问题,需要提问的朋友提供更多的背景信息,比如:Fiori界面,是运行在ABAPOn-Premises上,还是Cloud环境(Cloud环境下想知道ClientID貌似没有意义,因为这个字段值只对SA......
  • 20.AQS家族的“外门弟子”:CyclicBarrier
    关注王有志,一个分享硬核Java技术的互金摸鱼侠欢迎你加入Java人的提桶跑路群:共同富裕的Java人今天我们来学习AQS家族的“外门弟子”:CyclicBarrier。为什么说CyclicBarrier是AQS家族的“外门弟子”呢?那是因为CyclicBarrier自身和内部类Generation并没有继承AQS,但在源码的实现中却深......
  • 银行麒麟系统离线部署clickhouse三节点集群
    在国产化环境下部署clickhouse集群,个人建议先查看cpu的内核信息,可能有的人会说,去银河麒麟的官网查看适配的版本信息,实践证明,官网的未必就是真的正确好比银河麒麟的官网是这样介绍的我在安装的过程中,就会报不支持的二进制文件的错误,所以这里不建议安装官网推荐的版本,毕竟是在国......
  • CF542C 解题分析
    1题目大意1.1题目翻译:给定一个值域为\([1,n]\)的函数\(f(x)\),让你求出最小的\(k\),其中\(k\)满足\(f^{(2k)}(x)=f^{(k)}(x)\)。其实我觉得这题你谷翻译十分到位,建议没读懂题的还是去看你谷翻译罢。1.2数据范围:对于\(100\%\)的数据:\(1\leqn\leq200\)1.3......
  • MYSQL client 有了更多的新功能
    MYSQL8 中的client中的新功能,方便在MYSQL的client中操作可以不用在切换到LINUX平台下操作某些LINUX的命令。使用的场景主要在于在MYSQL中操作数据库的命令的适合,同时还想在监控一下当前的性能,之前可能会开两个窗口,在MYSQL8后,这样的事情可能会少不少。到底我们能做什么1 ......
  • 2023-06-19 API `getMenuButtonBoundingClientRect` is not yet implemented
    前言:想使用该Api来获取设备导航栏高度,结果报错了:API`getMenuButtonBoundingClientRect`isnotyetimplemented尚未实现API`getMenuButtonBoundingClientRect`原因:该Api不支持在app端或者h5端使用。平台兼容如下: AppH5微信小程序支付宝小程序百度小程序抖音小程序飞书小......
  • Climbing Stairs
    Youareclimbingastaircase.Ittakesnstepstoreachthetop.Eachtimeyoucaneitherclimb1or2steps.Inhowmanydistinctwayscanyouclimbtothetop?Example1:Input:n=2Output:2Explanation:Therearetwowaystoclimbtothetop.1.1......
  • 用kotlin来开发一个cli工具 | 没用的技能+1
    脚手架脚手架是为了保证各施工过程顺利进行而搭设的工作平台而在程序开发过程中,每个工程或者说公司也都需要一个脚手架工具。通过脚手架命令行的形式简化开发流程,避免发生一些人为的相对低级的问题,所以这个也就是为什么叫做脚手架的原因吧。而由于每个公司的代码规范都不同,一般情况......