自動化運維-修改主機名&hosts檔案指令碼

Linux运维技术栈發表於2024-10-02

指令碼:

#!/bin/bash

# 提示使用者輸入新的主機名
read -p "請輸入新的主機名: " NEW_HOSTNAME

# 檢查是否提供了新主機名
if [ -z "$NEW_HOSTNAME" ]; then
    echo "錯誤: 沒有輸入新的主機名。"
    exit 1
fi

# 備份原有的 hostname 檔案
sudo cp /etc/hostname /etc/hostname.bak

# 備份原有的 hosts 檔案
sudo cp /etc/hosts /etc/hosts.bak

# 設定新的主機名
sudo 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.0.1\).*/\1\t$NEW_HOSTNAME.localdomain\t$NEW_HOSTNAME/" /etc/hosts

# 顯示當前主機名以確認更改
echo "主機名已更改為: $NEW_HOSTNAME"

# 提示使用者重啟系統以使更改生效
echo "請重啟系統以使更改生效。"

相關文章