서버 hostname 변경, 재부팅 없이 즉각 적용하기

,

클라우드로 리눅스 서버를 사용하면 커맨드라인에 나오는 호스트명은 일단 임의로 붙습니다. 여러 대를 사용하다 보면 헷갈리기 십상이니 호스트명을 자신이 정해서 쓰는 게 좋습니다. 커맨드라인을 사용할 때 내가 어느 서버에 있다는 것을 명확히 알 수 있도록 말입니다.

  1. /etc/hostname 파일을 열어서 바꾸고 싶은 호스트명을 입력합니다. 여기를 바꾸면 재부팅할 때 이 이름을 사용하게 됩니다.
  2. hostnamectl set-hostname 새호스트명 명령어로 즉각 호스트명 변경을 적용할 수 있습니다. 이 명령을 내리고 로그아웃했다가 다시 들어오면 바로 변경이 돼 있는 것을 확인할 수 있습니다.

아래는 이 과정을 도와 주는 스크립트입니다. change-hostname.sh 같은 이름으로 파일을 만들고 아래 내용을 넣은 뒤 chmod +x change-hostname.sh 명령으로 실행 권한을 주고 sudo ./change-hostname.sh 명령으로 실행합니다. 그러면 새 호스트명을 묻는 프롬프트가 나오고 위 과정을 실행하게 됩니다.

#!/bin/bash

# 루트 권한 확인
if [ "$EUID" -ne 0 ]; then
echo "루트 권한으로 실행해야 합니다."
exit 1
fi

# 새로운 호스트네임을 사용자로부터 입력받음
read -p "새로운 호스트네임을 입력하세요: " new_hostname

# /etc/hostname 파일에 새로운 호스트네임을 반영
echo $new_hostname > /etc/hostname

# 현재 호스트네임을 가져옴
current_hostname=$(hostname)

# /etc/hosts 파일에서 기존 호스트네임을 새로운 호스트네임으로 변경
sed -i "s/$current_hostname/$new_hostname/g" /etc/hosts

# 시스템 호스트네임을 즉시 변경
hostnamectl set-hostname $new_hostname

echo "호스트네임이 '$new_hostname'으로 변경되었습니다."

👇 카테고리 글 목록

,

대표글

댓글 남기기