2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Linux: HOSTNAMEコマンドでのホスト名取得が好まれない理由、及びホスト名の変更方法について

Posted at

現場で言われたことについてメモ。

実施環境:
Linux
[root@testhost ~]# uname -a
Linux testhost 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@testhost ~]# echo $SHELL
/bin/bash

Linuxサーバでホスト名を取得したい場合、unameコマンドとhostnameコマンドの2つの選択肢があります。
(一応、ファイル/etc/hostnameの中身を確認するという方法もあります。このファイルについては後述。)

Linux
[root@testhost ~]# uname -n
testhost
[root@testhost ~]# hostname
testhost
[root@testhost ~]# cat /etc/hostname
testhost

ただ、ホスト名を取得するためにhostnameコマンドを使用することはあまり好まれません。
理由は簡単で、hostnameコマンドはホスト名の変更もできてしまうためです。
うっかりhostnameコマンドの後に何らかの文字列が入ってしまった場合、確認メッセージも何もなくホスト名が変更されてしまい、場合によっては大きな問題を引き起こす可能性があります。
unameコマンドではホスト名の変更はできないため、安全を考えるならこちらを使用したほうが無難です。
(なお、下記の実行例でファイル/etc/hostnameの中身は変わっていません。これについても後述。)

Linux
[root@testhost ~]# hostname testhost2
[root@testhost ~]# uname -n
testhost2
[root@testhost ~]# hostname
testhost2
[root@testhost ~]# cat /etc/hostname
testhost

ちなみに、hostnameコマンドでのホスト名の変更は一時的なものです。
サーバを再起動すれば元に戻ってしまいます。
永続的にホスト名を変更したい場合は、ファイル/etc/hostnameを書き換えます。
上記の通りhostnameコマンドでのホスト名の変更はファイル/etc/hostnameには反映されませんので、ファイル自体を直接書き換える必要があります。
書き換えた後、サーバを再起動することで変更が反映されます。

Linux(再起動前)
[root@testhost ~]# echo testhost2 > /etc/hostname
[root@testhost ~]# uname -n
testhost
[root@testhost ~]# hostname
testhost
[root@testhost ~]# cat /etc/hostname
testhost2
Linux(再起動後)
[root@testhost2 ~]# uname -n
testhost2
[root@testhost2 ~]# hostname
testhost2
[root@testhost2 ~]# cat /etc/hostname
testhost2
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?