linux

如何通过脚本批量修改Linux主机名

小樊
39
2025-10-22 12:27:01
栏目: 云计算

在Linux系统中,可以通过编写脚本来批量修改主机名。以下是一个简单的示例,展示了如何使用Bash脚本来批量修改多个主机名。

假设你有一个包含主机名列表的文件 hostnames.txt,每行一个主机名。你可以使用以下脚本来批量修改这些主机名:

#!/bin/bash

# 读取主机名列表文件
HOSTNAMES_FILE="hostnames.txt"

# 检查文件是否存在
if [ ! -f "$HOSTNAMES_FILE" ]; then
    echo "文件 $HOSTNAMES_FILE 不存在"
    exit 1
fi

# 逐行读取主机名并修改
while IFS= read -r NEW_HOSTNAME; do
    # 修改主机名
    sudo hostnamectl set-hostname "$NEW_HOSTNAME"
    
    # 更新 /etc/hosts 文件
    sudo sed -i "s/^127.0.0.1.*$/127.0.0.1 $NEW_HOSTNAME/" /etc/hosts
    
    # 可选:更新 /etc/hostname 文件
    echo "$NEW_HOSTNAME" | sudo tee /etc/hostname
    
    # 可选:重启网络服务以应用更改
    sudo systemctl restart networking
    
    echo "主机名已修改为 $NEW_HOSTNAME"
done < "$HOSTNAMES_FILE"

步骤说明:

  1. 创建主机名列表文件

    • 创建一个名为 hostnames.txt 的文件,并在其中列出所有需要修改的主机名,每行一个。
  2. 编写脚本

    • 将上述脚本保存为一个文件,例如 change_hostnames.sh
    • 确保脚本具有可执行权限:
      chmod +x change_hostnames.sh
      
  3. 运行脚本

    • 以root用户或使用sudo权限运行脚本:
      sudo ./change_hostnames.sh
      

注意事项:

通过这种方式,你可以批量修改多个Linux主机名。根据实际需求,你可以进一步扩展和自定义脚本。

0
看了该问题的人还看了