编辑机器的主机名

命令行选项可用于编辑为服务器指定的机器主机名。 此工具主要用于批处理系统。

某些集群设为其每个集群节点(机器)具有两个网卡。 第一个网卡可以是默认以太网网卡,而第二个可以是更高性能的网卡。 在这些情况下,与第二个网卡关联的主机名与分配给第一个网卡的主机名不同。 通常主机名附加有一个字符串,但这取决于机器的配置方式。 批处理系统看不到第二个网卡,因此当批处理系统分配可以运行作业的节点时,指的是默认网卡。

但是,当运行 Simcenter STAR-CCM+ 时,可能要利用更高性能的网卡。 为此,需要将批处理系统提供的主机名转换为实际要使用的主机名。

假设具有以下名称的机器集群:

green-node1
green-node2
green-node3
...
green-nodeN

批处理系统可以分配四个节点:

green-nodeN1
green-nodeN2
green-nodeN3
green-nodeN4

但是,应用程序要使用可能具有以下名称的更高性能网卡:

green-nodeN1-eth1
green-nodeN2-eth1
green-nodeN3-eth1
green-nodeN4-eth1

要使用更高性能的网卡,在命令行中输入以下内容:

-hostregexpr /<pattern>/<substitution>/

其中“正则表达式”pattern 会由正则表达式 substitution 替换。 正则表达式是模式匹配字符串的常规方法。

此外,/<pattern>/<substitution>/ 会直接传递到命令中:

echo $machinename | sed -s ’s/<pattern>/<substitution>/g’

下面是如何使用此方法的示例:

  • 将一个字符串附加到每个主机名的末尾:
    -hostregexpr /\$/<string>/

    因此要附加 -eth1,需输入:

    -hostregexpr /\$/-eth1/

    美元符号表示行的结束(或主机名的末尾),会替换为字符串。 同时,需要对美元符号进行转义,防止命令行 Shell 解释它。 因此,语法是 /\$/-eth1/ 而不是 /$/-eth1/

  • 将一个字符串添加到每个主机名的开头:
    -hostregexpr /^/eth1-/

    此选项会提供诸如 eth1-green-nodeN1 的项。 (^ 是正则表达式中的行或主机名的开头。 无需对此字符进行转义,因为它对 Shell 没有任何特殊意义。)

  • 将通用字符串替换为另一个字符串:
    -hostregexpr /green/green-eth1/

    此选项会生成 green-eth1-nodeN1