【发布时间】:2018-12-12 19:21:26
【问题描述】:
我正在迁移。从旧的服务器集迁移到新的服务器集,其中 2 集之间的服务器名称没有逻辑关系。 我有一个在旧服务器上运行的脚本,获取所有必要的备份,然后运行另一个脚本将备份复制到新服务器并执行它。
如果我可以包含将旧服务器映射到新服务器的逻辑,我可以结合这两个脚本(进行备份和复制到新服务器)。有什么办法可以做到这一点。
Old server New server
King Queen
Bat Ball
water fire
sand rock
我的期望是,如果脚本在服务器“King”上运行,我希望脚本识别相应的新服务器是“Queen”并将备份复制到 Queen。
【问题讨论】:
-
...好吧,这就是你想要做的;您在尝试使用 bash-the-language 时遇到的具体问题是什么?
-
如果问题只是“我如何存储这个映射?”,这很开放——哎呀,你可以有一个目录,其中每个文件都是旧主机名,其内容是新主机名;或者你可以有一个associative array,其中键是旧名称,值是新名称;或者你可以有一个前缀变量命名空间做同样的事情;或者......好吧,可能的方法的数量是无穷无尽的;这里没有真正的特异性。
-
我正在寻找一些可以在脚本中加入这个条件/映射的东西。就像我需要在脚本中使用数组或使用单独的 awk 脚本来替换新旧服务器
-
有几乎无数种方法来解决这个问题。您能否提供一些您尝试过的代码示例?此外,您同时标记了
python和shell。它是哪一个?这两种语言不是很相似。 -
对于一种启动方式,在 shell 脚本中,创建一个给定名称将返回新名称的函数。在该函数中,编写一个 case 语句,为匹配的输入返回正确的名称。
标签: python shell unix conditional-statements