linux

如何使用脚本批量修改Linux hostname

小樊
51
2025-08-21 08:15:56
栏目: 智能运维

在Linux系统中,可以使用脚本来批量修改多个主机的hostname。以下是一个简单的示例,展示了如何使用Bash脚本来实现这一目标。

步骤1:创建脚本文件

首先,创建一个Bash脚本文件,例如change_hostname.sh

#!/bin/bash

# 检查是否提供了新的hostname
if [ -z "$1" ]; then
  echo "Usage: $0 <new_hostname>"
  exit 1
fi

# 获取新的hostname
NEW_HOSTNAME=$1

# 修改hostname
hostnamectl set-hostname $NEW_HOSTNAME

# 更新/etc/hosts文件
sed -i "s/$(hostname)/$NEW_HOSTNAME/g" /etc/hosts

echo "Hostname changed to $NEW_HOSTNAME"

步骤2:赋予脚本执行权限

在终端中运行以下命令,赋予脚本执行权限:

chmod +x change_hostname.sh

步骤3:运行脚本

使用以下命令运行脚本,并提供新的hostname作为参数:

./change_hostname.sh new-hostname

批量修改多个主机的hostname

如果你需要批量修改多个主机的hostname,可以将上述脚本应用到每台主机上。以下是一个示例,展示了如何使用SSH批量修改多个主机的hostname。

步骤1:创建脚本文件

创建一个Bash脚本文件,例如batch_change_hostname.sh

#!/bin/bash

# 检查是否提供了新的hostname
if [ -z "$1" ]; then
  echo "Usage: $0 <new_hostname> <host1> <host2> ..."
  exit 1
fi

# 获取新的hostname
NEW_HOSTNAME=$1
shift

# 遍历所有主机并修改hostname
for HOST in $*; do
  echo "Changing hostname for $HOST..."
  ssh $HOST "bash -s" < change_hostname.sh $NEW_HOSTNAME
done

步骤2:赋予脚本执行权限

在终端中运行以下命令,赋予脚本执行权限:

chmod +x batch_change_hostname.sh

步骤3:运行脚本

使用以下命令运行脚本,并提供新的hostname和目标主机列表作为参数:

./batch_change_hostname.sh new-hostname host1 host2 host3

注意事项

  1. 权限:确保你有足够的权限来修改目标主机的hostname和/etc/hosts文件。
  2. 网络连接:确保你可以通过SSH访问所有目标主机。
  3. 备份:在执行批量修改之前,建议备份/etc/hosts文件,以防万一出现问题。

通过以上步骤,你可以轻松地使用脚本批量修改Linux主机的hostname。

0
看了该问题的人还看了