Ana içeriğe geç

hostname ve hostnamectl Komutu

Shell prompt'unuzda, kullanıcı adınızı ve hostname'inizi görüyorsunuz. Ancak bu, her ne kadar pek çok shell'de varsayılan olarak gelse de, özel bir prompt yapılandırması gerektiriyor. Hostname'i öğrenmek için pek de sağlıklı bir yol değil. Birincisi, shell'iniz hostname'i gösterecek şekilde ayarlanmamış olabilir (Hatta yanlış gösterecek şekilde ayarlanmış bile olabilir!). İkincisi, bir shell script'te hostname bilgisini nasıl öğrenip kullanabilirsiniz?

Hostname'inizi öğrenmek için hostname komutunu kullanabilirsiniz.

linux hostname komutu
ali@zion:~$ hostname
zion

Hatta hostname yenihostname şeklinde bir kullanımla, hostname'inizi değiştirebilirsiniz de, acaba?:

Linux'ta her yeniden başlatmadan sonra hostname'iniz eski hâline dönüyorsa, hatanız burada olabilir. Çünkü hostname komutu, hostname'i geçici olarak değiştirir.

Linux'ta Hostname'i Kalıcı Olarak Değiştirme

Bunun için hostnamectl komutunu kullanacağız.

linux hostnamectl komutu
root@localhost ~]# hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: afcc248f7e79e74fae68fa641b940b71
           Boot ID: c40fb2c23ab54d6d9ffbec52cd127851
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1160.41.1.el7.x86_64
      Architecture: x86-64

Peki bunlar ne? "Icon name", grafik arayüzlü uygulamaların makinenizi görselleştirmek için kullanacağı bir bilgi. "Chassis" de aynı şekilde çalışıyor fakat "masaüstü", "tablet", "sunucu", "gömülü sistem" gibi bir bilgilendirme için kullanılıyor. Şimdi, hostnamectl set-hostname yenihostname komutu ile hostname'i değiştirelim:

linux hostnamectl komutu
root@localhost ~]# hostnamectl set-hostname "Jack's Laptop"
root@localhost ~]# hostnamectl
   Static hostname: jackslaptop
   Pretty hostname: Jack's Laptop
         Icon name: computer-vm
           Chassis: vm
        Machine ID: afcc248f7e79e74fae68fa641b940b71
           Boot ID: c40fb2c23ab54d6d9ffbec52cd127851
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1160.41.1.el7.x86_64
      Architecture: x86-64

Gördüğünüz üzere çıktı değişti. Artık "Pretty hostname" bilgisini de görüyoruz. Bu, bilgisayarınızda görmek isteyeceğiniz şekilde esnek bir isimdir. Büyük harf, küçük harf, boşluk hatta özel karakterler de destekler. Öte yandan "Static hostname", açılış sırasında kernel hostname'ini initialize etmek için kullanılır. Linux'ta static hostname bilgisi, /etc/hostname dosyasında tutulur.

Linux'ta Diğer Host Özelliklerinin Değiştirilmesi

Bazen bir cihazı tanımlamak için hostname bilgisi yeterli gelmeyebilir. Bu nedenle ekstra bilgi vermek isteyebilirsiniz:

linuxta host bilgilerini değiştirme
root@localhost ~]# hostnamectl set-hostname "Blog Web Server (Apache)"
root@localhost ~]# hostnamectl set-deployment development
root@localhost ~]# hostnamectl set-location "Amsterdam DC AX21 3rd Shelf"
root@localhost ~]# hostnamectl set-chassis server
root@localhost ~]# hostnamectl status
   Static hostname: blogwebserverapache
   Pretty hostname: Blog Web Server (Apache)
         Icon name: computer-server
           Chassis: server
        Deployment: development
          Location: Amsterdam DC AX21 3rd Shelf
        Machine ID: afcc248f7e79e74fae68fa641b940b71
           Boot ID: c40fb2c23ab54d6d9ffbec52cd127851
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1160.41.1.el7.x86_64
      Architecture: x86-64

hostnamectl set-deployment komutu ile; "staging", "production", "development" gibi tanımlar yapabiliriz. hostnamectl set-location komutu ile, cihazın fiziksel konumunu belirtebiliriz. hostnamectl set-chassis komutu ile cihazın tipini belirtebiliriz. hostnamectl status komutu ile bilgileri kontrol ettiğimizde, şu sonuca kolaylıkla varabiliriz: Bu sunucu Amsterdam Veri Merkezi'nde AX21 kabinetinde 3. shelf'te yer alıyor. Geliştirme ortamı olarak kullanılıyor ve blog için bir Apache web servisi sunuyor.

Tüm bu bilgiler ise /etc/machine-info dosyasında saklanmaktadır.