在Linux服务器上批量修改hostname可以通过编写脚本来实现。以下是一个简单的示例,展示了如何在多台服务器上批量修改hostname。
首先,你需要一个包含所有服务器IP地址或主机名的列表文件。假设这个文件名为servers.txt,内容如下:
server1.example.com
server2.example.com
server3.example.com
创建一个脚本文件,例如change_hostname.sh,内容如下:
#!/bin/bash
# 读取服务器列表文件
SERVER_LIST="servers.txt"
# 读取新hostname
NEW_HOSTNAME=$1
# 遍历服务器列表并修改hostname
for SERVER in $(cat $SERVER_LIST); do
echo "Changing hostname for $SERVER to $NEW_HOSTNAME"
ssh $SERVER "sudo hostnamectl set-hostname $NEW_HOSTNAME"
ssh $SERVER "sudo echo '$NEW_HOSTNAME' > /etc/hostname"
ssh $SERVER "sudo systemctl restart networking"
done
在终端中运行以下命令,赋予脚本执行权限:
chmod +x change_hostname.sh
运行脚本并传入新的hostname作为参数:
./change_hostname.sh newhostname
sudo。如果你还没有配置SSH无密码登录,可以按照以下步骤进行:
在本地机器上生成SSH密钥对(如果还没有):
ssh-keygen -t rsa
将公钥复制到每台服务器的~/.ssh/authorized_keys文件中:
ssh-copy-id user@server1.example.com
ssh-copy-id user@server2.example.com
ssh-copy-id user@server3.example.com
其中user是你在每台服务器上的用户名。
完成这些步骤后,你就可以顺利地批量修改Linux服务器的hostname了。