在Linux系统中,可以使用脚本来批量修改多台主机名。以下是一个使用Bash脚本的示例,假设你有一组主机名存储在一个文件中,并且你希望通过SSH在这些主机上执行命令来修改它们的主机名。
准备主机名列表:
创建一个包含所有主机名的文件,例如 hostnames.txt,每行一个主机名。
创建脚本:
创建一个Bash脚本,例如 change_hostname.sh,内容如下:
#!/bin/bash
# 读取主机名列表文件
HOSTNAMES_FILE="hostnames.txt"
# 检查文件是否存在
if [ ! -f "$HOSTNAMES_FILE" ]; then
echo "主机名列表文件不存在: $HOSTNAMES_FILE"
exit 1
fi
# 读取每个主机名并修改主机名
while IFS= read -r hostname; do
# 使用SSH连接到远程主机并修改主机名
ssh user@$hostname "sudo hostnamectl set-hostname $hostname && sudo reboot"
echo "正在修改主机名 $hostname 并重启..."
done < "$HOSTNAMES_FILE"
echo "所有主机名修改完成。"
chmod +x change_hostname.sh
./change_hostname.sh
ssh-copy-id 命令将你的公钥复制到每个目标主机的 ~/.ssh/authorized_keys 文件中。sudo 来修改主机名和重启系统。hostnames.txt 文件内容:host1
host2
host3
通过这种方式,你可以批量修改多台Linux主机的主机名。根据你的具体需求,你可能需要调整脚本中的命令和逻辑。