在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"
创建主机名列表文件:
hostnames.txt 的文件,并在其中列出所有需要修改的主机名,每行一个。编写脚本:
change_hostnames.sh。chmod +x change_hostnames.sh
运行脚本:
sudo ./change_hostnames.sh
/etc/hosts 文件需要root权限,因此脚本中使用了 sudo。通过这种方式,你可以批量修改多个Linux主机名。根据实际需求,你可以进一步扩展和自定义脚本。