如何批量修改Linux服务器hostname
导读:在Linux服务器上批量修改hostname可以通过编写脚本来实现。以下是一个简单的示例,展示了如何在多台服务器上批量修改hostname。 步骤1:准备服务器列表 首先,你需要一个包含所有服务器IP地址或主机名的列表文件。假设这个文件名为...
    
在Linux服务器上批量修改hostname可以通过编写脚本来实现。以下是一个简单的示例,展示了如何在多台服务器上批量修改hostname。
步骤1:准备服务器列表
首先,你需要一个包含所有服务器IP地址或主机名的列表文件。假设这个文件名为servers.txt,内容如下:
server1.example.com
server2.example.com
server3.example.com
步骤2:编写脚本
创建一个脚本文件,例如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
步骤3:赋予脚本执行权限
在终端中运行以下命令,赋予脚本执行权限:
chmod +x change_hostname.sh
步骤4:执行脚本
运行脚本并传入新的hostname作为参数:
./change_hostname.sh newhostname
注意事项
- SSH无密码登录:为了能够通过SSH无密码登录到所有服务器,你需要提前配置好SSH密钥认证。
 - 权限问题:确保你有足够的权限在远程服务器上执行这些命令。通常需要使用
sudo。 - 网络连接:确保你的本地机器可以访问所有列出的服务器。
 - 防火墙设置:确保服务器的防火墙允许SSH连接。
 
示例:配置SSH无密码登录
如果你还没有配置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了。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何批量修改Linux服务器hostname
本文地址: https://pptw.com/jishu/741611.html
