Με την εντολή hostnamectl
μπορούμε να δούμε και να αλλάξουμε βασικές πληροφορίες για τον υπολογιστή μας.
Βασική χρήση
Αν τρέξουμε την εντολή σκέτη θα δούμε κάτι σαν το παρακάτω:
Static hostname: Minty
Icon name: computer-desktop
Chassis: desktop
Machine ID: b76cc7b1bbdc489e93909d2043031de8
Boot ID: 3cccaff4a2cd44cdba4e639d732fb001
Operating System: Linux Mint 20
Kernel: Linux 5.4.0-42-generic
Architecture: x86-64
Μπορούμε να προσθέσουμε επιπλέον πληροφορίες
sudo hostnamectl set-hostname "Awesome Asphodelus PC" --pretty
sudo hostnamectl set-location "Secret NSA labs"
# desktop, laptop, convertible, server, tablet, handset
# watch, embedded, vm, container
sudo hostnamectl set-chassis "watch"
# development, integration, staging, production
sudo hostnamectl set-deployment development
Μετά τις αλλαγές η εντολή θα δώσει:
Static hostname: Minty
Pretty hostname: Awesome Asphodelus PC
Icon name: computer-watch
Chassis: watch
Deployment: development
Location: Secret NSA labs
Machine ID: b76cc7b1bbdc489e93909d2043031de8
Boot ID: 3cccaff4a2cd44cdba4e639d732fb001
Operating System: Linux Mint 20
Kernel: Linux 5.4.0-42-generic
Architecture: x86-64
Οι αλλαγές μπορούν να γίνουν και με την βοήθεια του dbus
μέσω του org.freedesktop.hostname1
. Για να σβήσεις μια πληροφορία και να αντικατασταθεί με την εξ ορισμού τρέξε:
sudo hostnamectl set-location ""
Αλλαγή ιδιοτήτων απομακρυσμένου υπολογιστή
Μπορούμε να συνδεθούμε σε ένα απομακρυσμένο υπολογιστή και να δούμε ή να αλλάξουμε πληροφορίες:
hostnamectl set-hostname -H [username]@hostname ...
Που χρειάζονται όλα αυτά;
Αν έχουμε μόνο ένα υπολογιστή, το γραφικό περιβάλλον έχει ένα εύκολο τρόπο να βρει και να δείξει τις επιπλέον πληροφορίες και να βάλει ένα όμορφο εικονίδιο. Αλλά αν έχεις τα διαχειριστείς δεκάδες ή χιλιάδες υπολογιστές, οι πληροφορίες αυτές είναι πολύτιμες. Εργαλεία διαχείρισης μπορούν να φτιαχτούν για να ξέρεις με μια ματιά τι χρήση έχει κάποιος server και που βρίσκετε.
Γιατί μια νέα εντολή;
Χρόνια τώρα αν ήθελες να αλλάξεις το
hostname
απλά έγραφες σε ένα αρχείο. Το το κακό σε αυτό; Γιατί θα πρέπει να μάθω νέα πράγματα;
Απλά ξέρεις ένα παλιό τρόπο που δουλεύει. Λογικό να μην θέλεις να ξαναμάθεις πράγματα. Αλλά αν δεν το ήξερες τι είναι ποιο εύκολο; Και όταν μιλάμε για αρχεία τι δομή έχει αυτό το αρχείο; Μπορώ να βάλω σχόλια; Έχεις λοιπόν 2 πράγματα να μάθεις . Και που θα μπουν οι επιπλέον πληροφορίες; (Απάντηση: /etc/machine-info
).
Επιπλέον έχεις ένα εύκολο τρόπο να βρεις αν τρέχεις μέσα σε vm
ή container
και να αλλάξεις εύκολα ένα απομακρυσμένο υπολογιστή. Και έχεις και τις δυνατότητες που προσθέτει το dbus
. Είναι ευκολότερο να διαβάσεις κάτι από το dbus παρά να ψάχνεις την πληροφορία μέσα από πολλά αρχεία.
Και όσο το intefrace του dbus
μένει σταθερό μπορείς να αλλάξεις τον τρόπο που αποθηκεύονται οι πληροφορίες. Και με την βοήθεια του policykit
το κάνεις αυτό με ασφάλεια. Ένα γνωστό πρόβλημα του X11
είναι πως αν αλλάξεις το hostname
θα αντιμετωπίσεις προβλήματα. Αλλά τώρα μπορεί να ξέρει ότι έγινε η αλλαγή παρακολουθώντας το dbus
και να δράσει ανάλογα. Θεωρητικά τουλάχιστον, μιας και κανένας δεν θα μπει στον κόπο να το κάνει σήμερα.
Αν τώρα δεν θέλεις να την μάθεις, ο παλιός τρόπος δουλεύει και θα συνεχίσει να δουλεύει. Τίποτα δεν άλλαξε. Αντίθετα το αρχείο /etc/hostname
και η χρήση του έχει τεκμηριωθεί.
Εδώ και λίγες μέρες έβαλα στόχο να δω γιατί το systemd
έχει προκαλέσει τόσο θόρυβο και αν είναι τόσο κακό όσο λένε. Σε άρθρα εδώ παρουσιάζω ότι καλό ή κακό βρίσκω χωρίς φανατισμούς και ιδεοληψίες.