GNU/Linux >> Tutoriels Linux >  >> Linux

Comment définir la date et l'heure sous Linux

Ce tutoriel se concentre sur les techniques pour régler la date et l'heure sous Linux en utilisant timedatectl, NTP ou date.

En tant qu'administrateur système, vous pouvez être invité à définir la date système sur plusieurs serveurs .

Ils peuvent être mal configurés ou leurs fuseaux horaires n'est peut-être pas configuré correctement.

Par conséquent, certains de vos programmes peuvent enregistrer des dates non valides, ce qui vous empêche d'inspecter certains de vos journaux de serveur, par exemple.

Dans ce didacticiel, nous allons voir comment définir correctement la date sous Linux afin de correspondre à votre fuseau horaire géographique actuel.

Tout d'abord, nous allons jeter un œil à la commande timedatectl avec l'option systemd-timesync . Ensuite, nous allons installer soit chrony ou NTP services afin de synchroniser efficacement la date de notre système.

Enfin, nous allons utiliser la "date ” commande pour définir statiquement notre date système.

Nous allons également discuter des différences entre ces méthodes et laquelle vous voudrez peut-être utiliser de préférence.

Prérequis

Avant de commencer, vous devrez disposer des privilèges sudo sur votre hôte afin d'exécuter certaines des commandes.

Pour vous en assurer, vous pouvez lancer la commande suivante

$ sudo -l

User user may run the following commands on localhost:
   (ALL) ALL

Si vous n'avez pas de privilèges sudo sur votre compte, suivez ce tutoriel pour obtenir sudo sur les systèmes basés sur Debian ou sur les systèmes basés sur Red Hat (CentOS, RHEL)

Définir la date sous Linux en utilisant timedatectl

Que vous travailliez sur Debian/Ubuntu ou sur RHEL/CentOS, la façon de fixer la date est la même.

Pour définir la date, vous devez définir vos informations de fuseau horaire et (éventuellement) activer le protocole NTP afin que votre système se synchronise avec les serveurs NTP. Si vous n'utilisez pas le protocole NTP (avec ntpd ou chrony), votre système utilisera le service timesync par défaut.

Si votre fuseau horaire est mal configuré, vous devrez modifier vos informations de fuseau horaire.

Afin de consulter votre fuseau horaire actuel sous Linux, vous pouvez lancer la commande timedatectl.

$ timedatectl

                      Local time: Wed 2019-10-16 22:26:23 UTC
                  Universal time: Wed 2019-10-16 22:26:23 UTC
                        RTC time: Wed 2019-10-16 22:26:24
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: no
systemd-timesyncd.service active: inactive
                 RTC in local TZ: no

Disons que vous voulez le modifier.

Pour répertorier les fuseaux horaires sous Linux, utilisez la commande "list-timezones ” option avec timedatectl .

$ timedatectl list-timezones

Comme vous pouvez le constater, les fuseaux horaires sont présentés selon la syntaxe suivante :continent/région .

Pour définir votre fuseau horaire sur New York, vous pouvez le rechercher facilement à l'aide de grep.

$ timedatectl list-timezones | grep York
America/New_York

Pour définir le fuseau horaire, utilisez le "set-timezone ” commande.

$ timedatectl set-timezone America/New_York

Afin de vérifier votre date système actuelle, vous devez exécuter à nouveau la commande timedatectl.

$ timedatectl

                      Local time: Wed 2019-10-16 18:35:36 EDT
                  Universal time: Wed 2019-10-16 22:35:36 UTC
                        RTC time: Wed 2019-10-16 22:35:36
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: no
systemd-timesyncd.service active: inactive
                 RTC in local TZ: no

Cependant, votre date actuelle n'est pas encore synchronisée, vous devrez activer le service NTP pour qu'elle se synchronise.

Par défaut, si vous travaillez avec une distribution avec systemd, vous devriez avoir le démon systemd-timesync par défaut.

La principale différence entre systemd-timesync et NTP est que le démon n'implémente qu'un côté client et qu'il n'utilise pas de mécanismes complexes comme NTP.

Pour activer la synchronisation de l'heure , exécutez simplement cette commande.

$ timedatectl set-ntp true

systemd-timesyncd.service active: true

Si vous préférez utiliser chrony ou NTP , les sections suivantes décrivent comment vous pouvez définir NTP et chronie afin de synchroniser votre date système.

Définir la date sous Linux à l'aide de chrony (NTP)

Le moyen le plus précis de définir la date sous Linux consiste à utiliser le protocole ntp .

Pour rappel, le protocole NTP est utilisé afin de synchroniser l'heure entre différents serveurs sur un réseau.

Vous utiliserez des serveurs de temps de référence qui seront synchronisés avec votre propre serveur en calculant les latences pour contacter les serveurs de référence.

En utilisant le protocole NTP, vous pourrez avoir une date très précise sur Linux .

Pour régler la date, vous allez utiliser le chrony services.

Tout d'abord, assurez-vous que le service timesyncd n'est pas en cours d'exécution sur votre hôte.

$ sudo systemctl stop systemd-timesyncd.service

Ensuite, assurez-vous que vos packages sont à jour sur votre serveur.

$ sudo yum update

Ensuite, installez le package chrony en utilisant YUM.

$ sudo yum install chrony           [RHEL, CentOS]
$ sudo apt-get install chrony       [Debian, Ubuntu]

Dans la plupart des cas, le service chrony peut être installé par défaut sur votre distribution.

Pour activer et démarrer le service chrony, vous devez exécuter les commandes suivantes.

$ sudo systemctl enable chronyd
$ sudo systemctl start chronyd

Vérifiez l'état de votre service avec la commande status.

$ sudo systemctl status chronyd

Maintenant que chrony est installé sur votre système, vous pouvez modifier la date de votre système en ajustant le fuseau horaire de votre système.

Notez que vous n'avez pas besoin de définir l'activation du protocole NTP pour la commande timedatectl car le démarrage de chrony désactivera automatiquement le démon systemd-timesync afin d'utiliser NTP.

Si vous voulez vous en assurer, vous pouvez toujours exécuter la commande suivante.

$ timedatectl set-ntp true

Exécutez à nouveau la commande timedatectl pour vous assurer que tout est synchronisé.

$ timedatectl

                      Local time: Wed 2019-10-17 18:37:37 EDT
                  Universal time: Wed 2019-10-16 22:37:37 UTC
                        RTC time: Wed 2019-10-16 22:37:33
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: yes
       NTP service: active
                 RTC in local TZ: no

Remarque :au lieu d'avoir "service NTP", vous pouvez toujours avoir l'étiquette "systemd-timesyncd.service active" définie sur oui. Cela ne signifie pas que le service est actif, mais cela signifie que l'hôte utilise chrony comme moyen de synchronisation.

Vous pouvez également exécuter "date ” pour vérifier la date de votre système actuel.

$ date 
Thu Oct 17 13:16:10 EDT 2019

Génial !

Vous avez réussi à fixer votre date sur Linux (CentOS/RHEL) en utilisant chrony.

Définir la date sur Linux en utilisant ntpd (NTP)

Comme décrit précédemment, l'utilisation du protocole NTP est probablement le moyen le plus précis de définir votre date sur Ubuntu et Debian.

Tout d'abord, vous allez installer le service ntp sur votre hébergeur .

Pour installer un client NTP, exécutez simplement la commande suivante.

$ sudo apt-get install ntp     [Debian, Ubuntu]
$ sudo yum install ntp         [CentOS, RHEL]

Par défaut, l'exécution de cette commande installera et activera un NTP (Network Time Service ) service sur votre hôte.

Pour vous en assurer, obtenez l'état du service NTP.

$ sudo systemctl status ntp

Par défaut, l'exécution ou le redémarrage du service NTP n'activera pas le service NTP pour la commande timedatectl.

Pour activer la synchronisation NTP, spécifiez le "set-ntp ".

$ timedatectl set-ntp true

Encore une fois, exécutez une simple commande timedatectl afin de vous assurer que tout fonctionne correctement.

$ timedatectl

                      Local time: Wed 2019-10-17 18:37:37 EDT
                  Universal time: Wed 2019-10-16 22:37:37 UTC
                        RTC time: Wed 2019-10-16 22:37:33
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: yes
       systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Génial !

Vous avez correctement défini la date sous Linux en utilisant ntp .

Définir la date sous Linux à l'aide de la commande date

L'un des moyens de définir la date sous Linux consiste à utiliser la commande date.

L'un des principaux défauts de cette approche est le fait que vous ne serez jamais aussi précis que de définir le fuseau horaire et de le synchroniser avec timesyncd ou chronyd.

Cependant, il est toujours possible de le faire de cette façon.

Tout d'abord, désactivez la synchronisation de l'heure sur votre hébergeur, sinon votre changement de date manuel sera à chaque fois effacé par le service de synchronisation.

$ sudo timedatectl set-ntp false

Pour définir la date, utilisez "date" avec l'option "-s".

$ date -s <date>

Par exemple, en utilisant le format aaaa-MM-jj , vous pouvez régler la date de cette façon.

$ date -s '2019-10-17 12:00:00'
Thu Oct 17 12:00:03 EDT 2019

$ date -s '23 October 2019 12:00:00'
Wed Oct 23 12:00:00 EDT 2019

Vous pouvez également utiliser des raccourcis afin de régler la date facilement.

Si vous souhaitez modifier uniquement l'année, vous pouvez utiliser le champ "l'année prochaine " ou " l'année dernière ” raccourci.

$ sudo date -s "next year"
Sat Oct 17 12:02:21 EDT 2020

$ sudo date -s "last year"
Thu Oct 17 12:02:43 EDT 2018

Vous pouvez également choisir de modifier uniquement le mois, ou le jour avec les raccourcis suivants.

$ sudo date -s "next day"
Tue Oct 18 00:00:12 EDT 2019

$ sudo date -s "monday"
Mon Oct 21 00:00:00 EDT 2019

$ sudo date -s "next hour"
Wed Oct 21 13:00:19 EDT 2019

Synchronisez votre horloge matérielle avec la date de votre système

Avant de poursuivre vos tâches quotidiennes d'administration système, il peut être judicieux de synchroniser votre horloge matérielle avec la date de votre système.

De cette façon, vous vous assurez que vos deux horloges n'affichent pas des dates et des heures différentes.

Pour synchroniser votre horloge matérielle avec la date de votre système, utilisez la commande "hwclock" avec l'option "–systohc".

$ sudo hwclock --systohc

$ sudo hwclock
2019-10-23 13:03:56.466724-0400

Génial !

Vous avez réussi à synchroniser votre horloge matérielle avec votre date système actuelle.

Conclusion

Dans le didacticiel d'aujourd'hui, vous avez appris comment régler facilement la date sur n'importe quel système Linux.

Vous avez appris que vous pouviez définir le fuseau horaire et laissez le démon systemd-timesyncd effectuer la synchronisation de l'heure.

Si vous recherchez des techniques de synchronisation temporelle plus précises et efficaces, vous avez appris que vous pouvez utiliser soit chrony ou NTP pour arriver à ce résultat.

Vous avez également vu qu'il est possible de définir la date de manière statique à l'aide de la commande date.

Si vous êtes intéressé par l'administration système Linux , nous avons plein de tutoriels sur le sujet.


Linux
  1. Comment définir le fuseau horaire et synchroniser l'heure du serveur avec NTP sous Linux

  2. Comment définir ou modifier le fuseau horaire sous Linux

  3. Définir la date, l'heure et le fuseau horaire sur un serveur Linux

  4. Comment afficher la date et l'heure de redémarrage du système Linux

  5. 7 exemples de commande de date Linux pour afficher et définir la date et l'heure du système

Comment définir la date, l'heure et le fuseau horaire dans RHEL 8

Comment régler la date et l'heure dans Rocky et AlmaLinux

Comment trouver la date et l'heure d'installation du système d'exploitation Linux

Comment définir la date et l'heure sur Rocky Linux 8 Desktop et Server

Comment définir et supprimer des variables d'environnement sous Linux

Comment changer la date, l'heure et le fuseau horaire dans Linux Mint 20