You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化带连字符/下划线的服务器名Zone校验与后续操作

优化服务器Zone校验与zoneshow执行脚本

核心优化点

  • 单次SSH拉取全量Zone服务器列表,彻底消除多次远程查询的开销
  • 统一标准化格式消除-和_的变体差异,实现精准匹配
  • 批量生成并执行所有符合条件的zoneshow命令,高效处理多结果场景

1. 预处理本地服务器列表

先把file.txt中的服务器名转换成无符号的标准化格式,同时保留原始名称用于后续关联:

# 生成"原始名称:标准化名称"的映射文本
local_serv_map=$(sed 's/[-_]//g' file.txt | paste -d: file.txt -)

2. 单次远程拉取Zone列表并标准化

通过一次SSH获取所有Zone内的服务器名,同样做标准化处理,保留原始Zone中的名称:

# 远程拉取Zone服务器列表到临时文件
ssh your_user@zone_server 'zoneshow | grep -E "irl-(iv|dv)-host[0-9]+"' > zone_list.tmp
# 生成"Zone原始名称:标准化名称"的映射文本
zone_serv_map=$(sed 's/[-_]//g' zone_list.tmp | paste -d: zone_list.tmp -)

3. 匹配并批量生成执行命令

用awk关联两个映射文本,找出所有匹配的Zone服务器名,直接生成批量执行的zoneshow命令:

# 匹配生成命令列表
awk -F: '
    NR==FNR { local_map[$2] = 1; next }
    $2 in local_map { print "zoneshow "$1 }
' <(echo "$local_serv_map") <(echo "$zone_serv_map") > cmd_list.sh

# 远程批量执行命令
ssh your_user@zone_server 'bash -s' < cmd_list.sh

4. 清理临时文件

执行完成后清理临时文件:

rm zone_list.tmp cmd_list.sh

内容的提问来源于stack exchange,提问作者gafm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:11:13