插件窝 干货文章 如何用脚本修改Linux hostname

如何用脚本修改Linux hostname

HOSTNAME NEW 主机 修改 79    来源:    2025-05-05

修改Linux主机名的脚本方法

在Linux系统中修改主机名可以通过多种方式实现,以下是几种常用的脚本方法:

方法1:使用hostnamectl命令(推荐)

#!/bin/bash

# 设置新的主机名
NEW_HOSTNAME="new-hostname"

# 使用hostnamectl命令修改(适用于systemd系统)
sudo hostnamectl set-hostname "$NEW_HOSTNAME"

# 更新/etc/hosts文件(可选)
sudo sed -i "s/^127.0.1.1.*/127.0.1.1\t$NEW_HOSTNAME/" /etc/hosts

echo "主机名已修改为: $NEW_HOSTNAME"

方法2:直接修改相关文件

#!/bin/bash

NEW_HOSTNAME="new-hostname"

# 修改/etc/hostname文件
echo "$NEW_HOSTNAME" | sudo tee /etc/hostname > /dev/null

# 更新/etc/hosts文件
sudo sed -i "s/^127.0.1.1.*/127.0.1.1\t$NEW_HOSTNAME/" /etc/hosts

# 立即生效(不需要重启)
sudo hostname "$NEW_HOSTNAME"

echo "主机名已修改为: $NEW_HOSTNAME"

方法3:适用于旧版系统的脚本

#!/bin/bash

NEW_HOSTNAME="new-hostname"

# 修改/etc/sysconfig/network文件(适用于RHEL/CentOS 6等)
if [ -f /etc/sysconfig/network ]; then
    sudo sed -i "s/HOSTNAME=.*/HOSTNAME=$NEW_HOSTNAME/" /etc/sysconfig/network
fi

# 修改/etc/hostname和/etc/hosts
echo "$NEW_HOSTNAME" | sudo tee /etc/hostname > /dev/null
sudo sed -i "s/^127.0.1.1.*/127.0.1.1\t$NEW_HOSTNAME/" /etc/hosts

# 立即生效
sudo hostname "$NEW_HOSTNAME"

echo "主机名已修改为: $NEW_HOSTNAME"

使用方法

  1. 将上述任一脚本保存为change_hostname.sh
  2. 给脚本执行权限:chmod +x change_hostname.sh
  3. 使用root权限执行:sudo ./change_hostname.sh

注意事项

  1. 修改主机名通常需要root权限
  2. 某些服务可能需要重启才能识别新的主机名
  3. 在云环境中,可能需要额外的配置来保持主机名在重启后不变
  4. 建议同时更新/etc/hosts文件中127.0.1.1对应的条目

验证修改

修改后可以使用以下命令验证:

hostname
hostnamectl
uname -n

这些命令都应该显示新的主机名。