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.
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.
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:
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:
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.