溫馨提示×

Linux hostname自定義腳本

小樊
39
2025-07-07 04:59:32
欄目: 智能運維

在Linux系統中,自定義主機名可以通過編寫一個簡單的腳本來實現。以下是一個基本的腳本示例,用于設置和驗證新的主機名:

#!/bin/bash

# 檢查是否提供了新的主機名
if [ -z "$1" ]; then
    echo "Usage: $0 <new_hostname>"
    exit 1
fi

# 新的主機名
NEW_HOSTNAME=$1

# 檢查主機名是否有效
if ! [[ "$NEW_HOSTNAME" =~ ^[a-zA-Z0-9_-]{1,63}$ ]]; then
    echo "Invalid hostname. Hostnames must be 1 to 63 characters long and can only contain letters, numbers, underscores, or hyphens."
    exit 1
fi

# 檢查主機名是否已經被使用
if grep -q "^$NEW_HOSTNAME$" /etc/hosts; then
    echo "Hostname already in use. Please choose a different one."
    exit 1
fi

# 設置新的主機名
sudo hostnamectl set-hostname "$NEW_HOSTNAME"

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

# 重啟網絡服務以應用更改
sudo systemctl restart networking

echo "Hostname changed to $NEW_HOSTNAME successfully."

使用說明

  1. 保存腳本:將上述腳本保存為一個文件,例如 change_hostname.sh。
  2. 賦予執行權限:運行以下命令賦予腳本執行權限:
    chmod +x change_hostname.sh
    
  3. 運行腳本:使用以下命令運行腳本并提供新的主機名作為參數:
    sudo ./change_hostname.sh new-hostname
    

注意事項

  • 權限:更改主機名通常需要超級用戶權限,因此需要使用 sudo。
  • 主機名限制:主機名必須符合Linux主機名的命名規則,通常是1到63個字符,只能包含字母、數字、下劃線和連字符。
  • /etc/hosts文件:腳本會自動更新 /etc/hosts 文件中的主機名,確保網絡服務能夠正確識別新的主機名。

通過這個腳本,你可以輕松地自定義Linux系統的主機名。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女