HOME

hostnamectl 自动化脚本编写

在 Linux 系统中,hostnamectl 是一个强大的命令行工具,用于查询和设置系统的主机名相关配置信息。本文将介绍如何编写一个自动化脚本来使用 hostnamectl 修改系统主机名,并确保该修改能够持久生效。

目标与背景

假设我们希望通过脚本动态地更改系统中的主机名,并在重启后仍然保留新的主机名配置。这通常涉及到 /etc/hostname 文件和相关的网络服务配置文件,如 resolv.conf 和 DHCP 客户端。

脚本需求分析

使用的工具和命令

脚本编写

1. 创建脚本文件

首先,在你的主目录或任何方便的位置创建一个名为 change_hostname.sh 的脚本文件,并使用 vinano 编辑器打开它:

nano change_hostname.sh

2. 脚本内容编写

在文件中添加以下内容,确保正确设置你希望的主机名(例如 "new-hostname"):

#!/bin/bash

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

# 使用 hostnamectl 命令修改主机名并更新相关配置
hostnamectl set-hostname $NEW_HOSTNAME

# 更新 /etc/hostname 文件,确保持久化更改
echo "$NEW_HOSTNAME" > /etc/hostname

# 重启网络服务以使更改生效(根据实际情况调整服务名称)
systemctl restart networking.service

# 检查当前主机名是否已经正确更新
current_hostname=$(hostname)
if [ "$current_hostname" == "$NEW_HOSTNAME" ]; then
    echo "Host name changed successfully to $NEW_HOSTNAME"
else
    echo "Failed to change host name. Current host name is $current_hostname"
fi

3. 脚本权限设置

保存文件后,你需要赋予该脚本执行权限:

chmod +x change_hostname.sh

4. 测试脚本

运行你编写的脚本来检查是否能正确地更改系统主机名,并重启相关的网络服务以确保配置生效。

./change_hostname.sh

注意事项

通过以上步骤,你可以编写一个简单的自动化脚本来使用 hostnamectl 修改系统主机名并确保更改持久化生效。