Πώς να Ρυθμίσετε την Ώρα, τη Ζώνη Ώρας και να Συγχρονίσετε το Ρολόι στο Linux


Σε αυτό το άρθρο, μάθετε πώς να ρυθμίζετε την ώρα, τη ζώνη ώρας και να συγχρονίζετε το ρολόι του συστήματός σας Linux με NTP χρησιμοποιώντας τα timedatectl, systemd-timesyncd και chrony. :

Η εντολή ‘timedatectl‘ είναι ένα εργαλείο για διανομές βασισμένες σε RHEL και Debian, και αποτελεί μέρος του διαχειριστή συστήματος και υπηρεσιών ‘systemd‘, λειτουργώντας ως αντικατάσταση της παλιάς παραδοσιακής εντολής date που χρησιμοποιούνταν στις διανομές Linux βασισμένες σε daemon ‘sysvinit‘.

Η εντολή timedatectl σάς επιτρέπει να ελέγχετε και να αλλάζετε τη διαμόρφωση του συστήματος ώρας και τις ρυθμίσεις του. Μπορείτε να χρησιμοποιήσετε αυτήν την εντολή για να ορίσετε ή να αλλάξετε την τρέχουσα ημερομηνία, ώρα και ζώνη ώρας, ή να ενεργοποιήσετε τον αυτόματο συγχρονισμό του ρολογιού του συστήματος με έναν απομακρυσμένο διακομιστή NTP.

Σε αυτό το σεμινάριο, θα σας καθοδηγήσω στους τρόπους με τους οποίους μπορείτε να διαχειριστείτε τον χρόνο στο σύστημά σας Linux ρυθμίζοντας την ημερομηνία, την ώρα, τη ζώνη ώρας και το συγχρονισμό της ώρας με NTP από το τερματικό χρησιμοποιώντας τα timedatectl, systemd-timesyncd και chrony.

Είναι πάντα καλή πρακτική να διατηρείτε την σωστή ώρα στον διακομιστή ή το σύστημά σας Linux, και αυτό μπορεί να έχει τα ακόλουθα πλεονεκτήματα:

  • Διατηρήστε τη σωστή λειτουργία των εργασιών του συστήματος, καθώς οι περισσότερες εργασίες στο Linux ελέγχονται από τον χρόνο.
  • Ακριβής χρόνος για την καταγραφή γεγονότων και άλλων πληροφοριών στο σύστημα.
  • Κατάλληλος συγχρονισμός για κατανεμημένα συστήματα και εφαρμογές.
  • Απαραίτητο για πρωτόκολλα ασφαλείας όπως η Kerberos και η επικύρωση πιστοποιητικών SSL/TLS.

Πώς να βρείτε και να ρυθμίσετε τη τοπική ζώνη ώρας στο Linux

1. Για να εμφανίσετε την τρέχουσα ώρα και ημερομηνία στο σύστημά σας, χρησιμοποιήστε την εντολή timedatectl από τη γραμμή εντολών ως εξής:

timedatectl  status

Έλεγχος Ώρας και Ημερομηνίας Συστήματος Linux

Στην παραπάνω έξοδο, ο χρόνος RTC είναι ο χρόνος του υλικού ρολογιού.

2. Ο χρόνος στο σύστημά σας Linux διαχειρίζεται πάντα μέσω της ζώνης ώρας που έχει οριστεί στο σύστημα. Για να δείτε την τρέχουσα ζώνη ώρας σας, κάντε το ως εξής:

timedatectl 
OR
timedatectl | grep Time

Ελέγξτε τη ζώνη ώρας του συστήματος Linux σας

3. Για να δείτε όλες τις διαθέσιμες ζώνες ώρας, εκτελέστε την παρακάτω εντολή:

timedatectl list-timezones

Καταγραφή όλων των ζωνών ώρας σε ένα σύστημα Linux

4. Για να βρείτε τη τοπική ζώνη ώρας σύμφωνα με την τοποθεσία σας, εκτελέστε την ακόλουθη εντολή.

timedatectl list-timezones |  egrep  -o "Asia/B.*"
timedatectl list-timezones |  egrep  -o "Europe/L.*"
timedatectl list-timezones |  egrep  -o "America/N.*"

Βρείτε τη τοπική σας ζώνη ώρας στο Linux

5. Για να ρυθμίσετε τη τοπική σας ζώνη ώρας στο Linux, θα χρησιμοποιήσουμε την επιλογή set-timezone όπως φαίνεται παρακάτω.

sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status

Ρυθμίστε τη Τοπική Ζώνη Ώρας σε ένα Σύστημα Linux

Συνιστάται πάντα να χρησιμοποιείτε και να ρυθμίζετε την συντονισμένη παγκόσμια ώρα, UTC.

sudo timedatectl set-timezone UTC
timedatectl status

Ρύθμιση της Ώρας του Συστήματός σας σε UTC

Πρέπει να πληκτρολογήσετε τη σωστή ονομασία της ζώνης ώρας, διαφορετικά ενδέχεται να προκύψουν λάθη κατά την αλλαγή της ζώνης ώρας. Στο παρακάτω παράδειγμα, η ζώνη ώρας «Asia/Kolkata» δεν είναι σωστή, γεγονός που προκαλεί το σφάλμα.

failed to set time zone: invalid timezone

Πώς να ρυθμίσετε την ώρα και την ημερομηνία στο Linux

Μπορείτε να ορίσετε την ημερομηνία και την ώρα στο σύστημά σας χρησιμοποιώντας την εντολή timedatectl ως εξής:

Ορισμός ώρας στο Linux

6. Για να ορίσουμε μόνο την ώρα, μπορούμε να χρησιμοποιήσουμε έναν διακόπτη set-time μαζί με τη μορφή χρόνου σε ΩΩ:ΛΛ:ΔΔ (Ώρα, Λεπτό και Δευτερόλεπτα).

sudo timedatectl set-time 12:25:30
timedatectl status

Μπορεί να λάβετε το ακόλουθο σφάλμα όταν ορίσετε την ημερομηνία όπως φαίνεται παραπάνω:

Failed to set time: Automatic time synchronization is enabled

Το σφάλμα συμβαίνει επειδή είναι ενεργοποιημένος ο αυτόματος συγχρονισμός ώρας (NTP), που εμποδίζει τις χειροκίνητες αλλαγές ώρας.

Για να το διορθώσετε, πρώτα απενεργοποιήστε το NTP και μετά ρυθμίστε την ώρα.

sudo timedatectl set-ntp false
sudo timedatectl set-time 12:25:30
timedatectl status

Ορισμός ημερομηνίας και τοπικής ώρας στο Linux

7. Για να ορίσετε τόσο την ημερομηνία όσο και την ώρα, χρησιμοποιήστε την επιλογή set-time μαζί με τη μορφή της ημερομηνίας σε YYYY-MM-DD (Έτος, Μήνας, Ημέρα) και της ώρας σε HH:MM:SS (Ώρα, Λεπτό, και Δευτερόλεπτα):

sudo timedatectl set-time '2026-01-23 12:25:30'

Ρύθμιση Ημερομηνίας και Ώρας με Μορφή ΗΗ:ΜΜ:ΕΕ και ΩΩ:ΛΛ:ΔΔ

Πώς να βρείτε και να ρυθμίσετε το ρολόι υλικού στο Linux

8. Για να ρυθμίσετε το ρολόι υλικού σας σε συντονισμένη παγκόσμια ώρα, UTC, χρησιμοποιήστε την επιλογή set-local-rtc boolean-value ως εξής:

Πρώτα ανακαλύψτε αν το ρολόι υλικού σας είναι ρυθμισμένο στη τοπική ζώνη ώρας:

timedatectl | grep local

Ρυθμίστε το ρολόι υλικού στη τοπική ζώνη ώρας:

sudo timedatectl set-local-rtc 1

Ορίστε το ρολόι υλικού σας σε UTC στο Linux

Ορίστε το ρολόι υλικού σας στην Παγκόσμια Ωρα Συντονισμένη (UTC):

sudo timedatectl set-local-rtc 0

Ορίστε το ρολόι υλικού σας σε UTC

Σημείωση: Η ρύθμιση του RTC στη τοπική ώρα δεν συνιστάται και μπορεί να προκαλέσει προβλήματα με τις αλλαγές της θερινής ώρας, επομένως είναι καλύτερο να διατηρείται το RTC σε UTC.

Συγχρονισμός του ρολογιού συστήματος Linux με απομακρυσμένο NTP διακομιστή

NTP σημαίνει Πρωτόκολλο Χρονισμού Δικτύου και είναι ένα πρωτόκολλο διαδικτύου που χρησιμοποιείται για τον συγχρονισμό του συστήματος ρολογιού μεταξύ των υπολογιστών.

Η υπηρεσία timedatectl σάς επιτρέπει να συγχρονίζετε αυτόματα το ρολόι του συστήματός σας Linux με μια απομακρυσμένη ομάδα διακομιστών χρησιμοποιώντας το NTP.

Οι περισσότερες σύγχρονες διανομές Linux χρησιμοποιούν διαφορετικές υλοποιήσεις για τον συγχρονισμό NTP:

  • systemd-timesyncd: Ένας ελαφρύς πελάτης SNTP (Simple NTP) ενσωματωμένος στο systemd, κατάλληλος για τις περισσότερες εγκαταστάσεις σε επιτραπέζιους υπολογιστές και μονοδιακομιστές.
  • chrony: Μια πλήρης υλοποίηση του NTP που μπορεί να λειτουργήσει τόσο ως πελάτης όσο και ως διακομιστής. Διαχειρίζεται καλύτερα διακοπτόμενες συνδέσεις δικτύου και είναι πιο ακριβής.

Χρήση του systemd-timesyncd

Για να ξεκινήσετε τον αυτόματο συγχρονισμό ώρας με έναν απομακρυσμένο NTP διακομιστή, πληκτρολογήστε την παρακάτω εντολή στο τερματικό, η οποία θα ενεργοποιήσει και θα ξεκινήσει την υπηρεσία systemd-timesyncd.

sudo timedatectl set-ntp true

Για να απενεργοποιήσετε τον συγχρονισμό ώρας NTP, πληκτρολογήστε την παρακάτω εντολή στο τερματικό.

sudo timedatectl set-ntp false

Για να ελέγξετε την κατάσταση συγχρονισμού:

timedatectl status

Θα πρέπει να δείτε «Σύστημα ρολογιού συγχρονισμένο: ναι» και «Υπηρεσία NTP: ενεργή».

Χρήση του chrony (Συνιστάται για διακομιστές)

Αν διαχειρίζεστε έναν διακομιστή ή χρειάζεστε πιο αξιόπιστο συγχρονισμό χρόνου, το chrony είναι η καλύτερη επιλογή και είναι ιδιαίτερα κατάλληλο για:

  • Συστήματα που δεν λειτουργούν συνεχώς (φορητοί υπολογιστές, επιτραπέζιοι υπολογιστές).
  • Οι διακομιστές απαιτούν υψηλή ακρίβεια.
  • Συστήματα με διακοπτόμενη συνδεσιμότητα δικτύου.
  • Συστοιχισμένα περιβάλλοντα όπου η συνέπεια στον χρόνο είναι κρίσιμη.

Πρώτα, εγκαταστήστε το chrony (αν δεν είναι ήδη εγκατεστημένο):

sudo apt install chrony   [On Debian-based systems]
sudo dnf install chrony   [On RHEL-based systems]

Σημείωση: Η εγκατάσταση του chrony θα απενεργοποιήσει αυτόματα το systemd-timesyncd για να αποφευχθούν συγκρούσεις.

Μετά την εγκατάσταση, ενεργοποιήστε, ξεκινήστε και ελέγξτε την κατάσταση συγχρονισμού:

sudo systemctl enable --now chronyd
timedatectl status

Έλεγχος Κατάστασης Συγχρονισμού Ρολογιού Συστήματος

Για να χρησιμοποιήσετε τους δικούς σας NTP διακομιστές αντί για τους προεπιλεγμένους, θα πρέπει να επεξεργαστείτε το αρχείο ρυθμίσεων του Chrony.

sudo nano /etc/chrony/chrony.conf
OR
sudo nano /etc/chrony/sources.d/custom.sources

Προσθέστε τους προτιμώμενους NTP διακομιστές σας (μπορείτε να πάρετε μια λίστα NTP διακομιστών από το NTP Pool Project).

pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst

Επανεκκινήστε το chrony μετά από αλλαγές:

sudo systemctl restart chronyd

Σημαντικές Σημειώσεις για τον Συγχρονισμό NTP

  • Δεν μπορείτε να εκτελείτε πολλές υλοποιήσεις NTP ταυτόχρονα, οπότε επιλέξτε είτε systemd-timesyncd είτε chrony.
  • systemd-timesyncd είναι μια υλοποίηση μόνο για πελάτες και δεν μπορεί να παρέχει ώρα σε άλλα συστήματα.
  • chrony μπορεί να λειτουργήσει τόσο ως πελάτης χρόνου όσο και ως διακομιστής χρόνου για το τοπικό σας δίκτυο.
  • Για διακομιστές παραγωγής και κρίσιμη υποδομή, συνήθως συνιστάται το chrony αντί για το systemd-timesyncd.
  • Η NTP απαιτεί το άνοιγμα της θύρας UDP 123 για εξερχόμενες συνδέσεις.
Περίληψη

Αυτά είναι πολύ εύκολα παραδείγματα που περιγράφονται σε αυτό το σεμινάριο και ελπίζω να σας φανούν χρήσιμα για τη ρύθμιση διαφόρων ρολογιών και ζωνών ώρας συστημάτων Linux.

Για να μάθετε περισσότερα σχετικά με αυτό το εργαλείο, μεταβείτε στη σελίδα βοήθειας timedatectl.

man timedatectl

Αν έχετε κάτι να πείτε σχετικά με αυτό το άρθρο, μη διστάσετε να αφήσετε ένα σχόλιο για οποιαδήποτε επιπλέον πληροφορία θέλετε να προσθέσετε.