web-dev-qa-db-fra.com

Comment changer la date et l'heure du serveur d'ubuntu via une ligne de commande?

La date et l'heure actuelles du serveur Ubuntu sont différentes de celles du fuseau horaire. J'ai essayé d'utiliser:

Sudo date "30 Sep 2015 4:43:42"

pour le changer mais cela n'a pas changé la date et l'heure, il suffit juste d'afficher sur le terminal la date et l'heure que j'ai modifiées,

Sudo hwclock --show

La date et l'heure sont toujours les anciennes.

Quelle est la bonne façon de changer la date et l'heure de Ubuntu Server?

32
Priska Aprilia

Vous pouvez définir le date du système avec cette commande:

Sudo date --set="2015-09-30 10:05:59.990"

Ensuite, lorsque vous utilisez date, il devrait être affiché correctement.

Maintenant, vous devriez également définir le horloge matérielle dans le BIOS du système, que le réglage persiste après un redémarrage (au démarrage, l'heure système est définie sur la valeur de l'horloge matérielle). Faites cela avec hwclock:

Sudo hwclock --systohc

Cela obtient la valeur d'horloges système (sys) et définit l'horloge matérielle (hc). Vérifiez-le avec la commande hwclock. hwclock et date doivent maintenant afficher la même date et l'heure.


Pour définir votre fuseau horaire, vous pouvez utiliser cette commande:

Sudo dpkg-reconfigure tzdata

BTW: Si vous utilisez cette machine comme serveur, je vous recommande vivement d'utiliser un client NTP pour synchroniser l'heure sur le résea. Vous pouvez donc garantir que tous vos serveurs ont exactement la même heure. Cela synchronisera l'heure pendant que la machine fonctionne. Si vous avez des applications qui dépendent du temps synchronisé sur le serveur, je recommande le démon NTP. Plus le temps passe en arrière-plan, plus l'heure est précise.

62
chaos

Je n'aime pas régler l'heure du système manuellement. Donc, pour résoudre ce problème, je devais combiner deux réponses différentes.
Pour régler l'heure du système, vous devez utiliser ce code:

Sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

comme indiqué dans ce réponse
Ensuite, vous synchronisez l'horloge matérielle avec l'horloge système à l'aide de

Sudo hwclock --systohc

comme donné par @chaos dans ce fil.

3
twitu
  1. Recherchez votre fuseau horaire
timedatectl list-timezones
  1. Définissez votre fuseau horaire
Sudo timedatectl set-timezone America/Toronto
  1. Activer timesyncdname__
Sudo timedatectl set-ntp on

Avec cela, l'heure doit être réglée et synchronisée.

Vous pouvez en voir plus sur ce tutoriel: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04

2
NatoBoram

il suffit de taper

Sudo date newdatestring

avec newdatestring au format nnddhhmmyyyy.ss

  • nn: le mois (deux chiffres) (01 à 12)
  • dd: le jour (à deux chiffres) (01 à 31), avec les règles habituelles pour les jours en fonction du mois et de l'année
  • hh: l'heure (deux chiffres) (00 à 23)
  • mm: la minute (deux chiffres) (00 à 59)
  • aaaa: l'année; il peut être deux ou quatre chiffres
  • ss est deux secondes numériques (00 à 59). Notez le délai "." Avant le par.

Mais à côté de la commande de date, vous préférez peut-être le NTP "solution" (protocole de temps réseau): Serverguide - NTP , beaucoup plus facile à gérer et plus précis que le réglage manuel de la date . Vous pouvez utiliser un cronjob ou le démon ntp (ntpd) pour mettre à jour votre temps toutes les x heures/minutes ...

J'espère que cela t'aides!

1
Wolfgang