插件窝 干货文章 如何用脚本修改Linux主机名

如何用脚本修改Linux主机名

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

修改Linux主机名的脚本方法

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

方法1:使用hostnamectl命令(推荐用于systemd系统)

#!/bin/bash

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

# 使用hostnamectl修改主机名
sudo hostnamectl set-hostname "$NEW_HOSTNAME"

# 验证修改
echo "当前主机名: $(hostname)"

方法2:直接修改/etc/hostname文件

#!/bin/bash

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

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

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

# 验证修改
echo "当前主机名: $(hostname)"

方法3:同时修改/etc/hosts文件(推荐完整方案)

#!/bin/bash

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

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

# 修改/etc/hosts文件中的旧主机名
OLD_HOSTNAME=$(hostname)
sudo sed -i "s/$OLD_HOSTNAME/$NEW_HOSTNAME/g" /etc/hosts

# 立即生效
sudo hostname "$NEW_HOSTNAME"

# 验证修改
echo "当前主机名: $(hostname)"

方法4:适用于非systemd系统的老方法

#!/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
echo "$NEW_HOSTNAME" | sudo tee /etc/hostname > /dev/null

# 修改/etc/hosts
OLD_HOSTNAME=$(hostname)
sudo sed -i "s/$OLD_HOSTNAME/$NEW_HOSTNAME/g" /etc/hosts

# 立即生效
sudo hostname "$NEW_HOSTNAME"

# 验证修改
echo "当前主机名: $(hostname)"

注意事项

  1. 修改主机名通常需要root权限,因此脚本中使用了sudo
  2. 修改后建议重启系统以确保所有服务都使用新的主机名
  3. 对于网络环境中的主机,确保新主机名在DNS中正确解析
  4. 某些服务可能需要重启才能识别新的主机名

使用方法

  1. 将上述任一脚本保存为文件,例如change_hostname.sh
  2. 添加执行权限:chmod +x change_hostname.sh
  3. 使用root权限执行:sudo ./change_hostname.sh

选择哪种方法取决于你的Linux发行版和版本,现代Linux发行版推荐使用第一种hostnamectl方法。