den här handledningen fokuserar på teknikerna för att ställa in datum och tid på Linux med timedatectl, NTP eller date.

som systemadministratör kan du bli ombedd att ställa in systemdatumet på flera servrar.

de kan konfigureras dåligt eller deras tidszoner kanske inte konfigureras korrekt.

som en konsekvens kan vissa av dina program logga ogiltiga datum, vilket leder till att det inte går att inspektera några av dina serverloggar till exempel.,

i den här handledningen kommer vi att se hur du korrekt kan ställa in datumet på Linux för att matcha din nuvarande geografiska tidszon.

först ska vi ta en titt på kommandot timedatectl med alternativet systemd-timesync. Därefter kommer vi att installera antingen chrony eller NTP-tjänster för att synkronisera vårt systemdatum effektivt.

slutligen kommer vi att använda kommandot ”datum” för att statiskt ställa in vårt systemdatum.

Vi kommer också att diskutera skillnaderna mellan dessa metoder och vilken du kanske vill använda helst.,

Innehållsförteckning

förutsättningar

innan du börjar måste du ha sudo-privilegier på din värd för att kunna utföra några av kommandona.

för att försäkra dig om det kan du köra följande kommando

$ sudo -lUser user may run the following commands on localhost: (ALL) ALL

om du inte har sudo-privilegier på ditt konto, följ den här handledningen för att få sudo på Debianbaserade system, eller på Red Hat-baserade system (CentOS, RHEL)

ange datum för Linux med timedatectl

Om du arbetar med Debian/Ubuntu eller på RHEL/CentOS, sättet att ställa in datumet är detsamma.,

för att ställa in datumet måste du ställa in din tidszon och (valfritt) aktivera NTP-protokollet för att ditt system ska kunna synkronisera med NTP-servrar. Om du inte använder NTP-protokollet (med ntpd eller chrony) använder systemet som standard timesync-tjänsten.

om din tidszon är dåligt konfigurerad måste du ändra din tidszon-information.

för att konsultera din nuvarande tidszon på Linux kan du köra kommandot timedatectl.

låt oss säga att du vill ändra den.,

för att lista tidszoner på Linux, använd alternativet ”list-timezones” med timedatectl.

$ timedatectl list-timezones

som du kan se presenteras tidszoner med följande syntax : kontinent / region.

för att ställa in din tidszon till New York, kan du söka efter det enkelt med grep.

$ timedatectl list-timezones | grep YorkAmerica/New_York

för att ställa in tidszonen, använd kommandot ”set-timezone”.

$ timedatectl set-timezone America/New_York

för att kontrollera ditt nuvarande systemdatum måste du köra kommandot timedatectl igen.,

ditt aktuella datum är dock inte synkroniserat ännu, du måste aktivera NTP-tjänsten för att den ska kunna synkroniseras.

som standard bör du som standard ha systemd-timesync-demonen om du arbetar med en distribution med systemd.

huvudskillnaden mellan systemd-timesync och NTP är att demonen endast implementerar en klientsida och det använder inte komplexa mekanismer som NTP.

för att aktivera tidssynkronisering, kör du bara det här kommandot.,

$ timedatectl set-ntp truesystemd-timesyncd.service active: true

om du föredrar att använda chrony eller NTP beskriver nästa avsnitt hur du kan ställa in NTP och chrony för att synkronisera ditt systemdatum.

ange datum för Linux med chrony (NTP)

det mest exakta sättet att ställa in datumet för Linux är att använda NTP-protokollet.

som en snabb påminnelse används NTP-protokollet för att synkronisera tiden mellan olika servrar över ett nätverk.

Du kommer att använda referenstidservrar som synkroniseras till din egen server genom att beräkna latenser för att kontakta referensservrar.,

med NTP-protokollet kan du ha ett mycket exakt datum på Linux.

för att ställa in datumet kommer du att använda chrony-tjänsten.

kontrollera först och främst att timesyncd-tjänsten inte körs på din värd.

$ sudo systemctl stop systemd-timesyncd.service

kontrollera sedan att dina paket är uppdaterade på din server.

$ sudo yum update

Installera sedan chrony-paketet med YUM.

$ sudo yum install chrony $ sudo apt-get install chrony 

i de flesta fall kan chrony-tjänsten installeras som standard på din distribution.,

för att aktivera och starta chrony-tjänsten måste du köra följande kommandon.

$ sudo systemctl enable chronyd$ sudo systemctl start chronyd

verifiera status för din tjänst med statuskommandot.

$ sudo systemctl status chronyd

nu när chrony är installerat på ditt system kan du ändra ditt systemdatum genom att justera tidszonen för ditt system.,

Observera att du inte behöver ställa in Aktivera NTP-protokollet för kommandot timedatectl eftersom start chrony automatiskt inaktiverar systemd-timesync-demonen för att kunna använda NTP.

om du vill försäkra dig om det kan du fortfarande köra följande kommando.

$ timedatectl set-ntp true

Kör kommandot timedatectl igen för att se till att allt är synkroniserat.

Obs! istället för att ha ”NTP-tjänst” kan du fortfarande ha ”systemd-timesyncd.service active ” etikett inställd på Ja., Det betyder inte att tjänsten är aktiv, men det betyder att värden använder chrony som ett sätt att synkronisera.

Du kan också köra ”date” för att kontrollera ditt aktuella systemdatum.

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

Häftigt!

Du har ställt in ditt datum på Linux (CentOS / RHEL) med chrony.

ange datum för Linux med ntpd (NTP)

som beskrivits tidigare är det förmodligen det mest exakta sättet att ställa in ditt datum på Ubuntu och Debian Med hjälp av NTP-protokollet.

först och främst kommer du att installera NTP-tjänsten på din värd.,

för att installera en NTP-klient, kör du bara följande kommando.

$ sudo apt-get install ntp $ sudo yum install ntp 

som standard kommer det här kommandot att installera och aktivera en NTP-tjänst (Network Time Service) på din värd.

för att säkerställa det, få status för NTP-tjänsten.

$ sudo systemctl status ntp

som standard aktiveras inte NTP-tjänsten för kommandot timedatectl genom att köra eller starta om.

för att aktivera NTP-synkronisering, ange alternativet ”set-NTP”.,

$ timedatectl set-ntp true

kör igen ett enkelt timedatectl-kommando för att se till att allt körs ordentligt.

Häftigt!

Du har ställt in datumet på Linux korrekt med NTP.

Ställ in datum på Linux med datumkommandot

ett av sätten att ställa in datumet på Linux är att använda datumkommandot.

en av de största bristerna i detta tillvägagångssätt är det faktum att du aldrig kommer att vara så exakt som att ställa in tidszonen och synkronisera den med timesyncd eller chronyd.

det är dock fortfarande möjligt att göra det på detta sätt.,

först av allt, avaktiv tidssynkronisering på din värd, annars kommer din manuella datumändring att raderas varje gång av synkroniseringstjänsten.

$ sudo timedatectl set-ntp false

för att ställa in datumet, använd ”datum” med alternativet ”-s”.

$ date -s <date>

om du till exempel använder formatet ÅÅÅÅ-MM-DD kan du ställa in datumet på det här sättet.

$ 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

Du kan också använda genvägar för att enkelt ställa in datumet.

om du bara vill ändra året kan du använda genvägen ”nästa år” eller ”förra året”.,

$ 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

Du kan också välja att bara ändra månaden eller dagen med följande genvägar.

synkronisera maskinvaruklockan med ditt systemdatum

innan du går vidare med dina dagliga systemadministrationsuppgifter kan det vara en bra idé att synkronisera maskinvaruklockan med ditt systemdatum.

På så sätt ser du till att dina två klockor inte visar olika datum och timmar.

för att synkronisera hårdvaruklockan med ditt systemdatum, använd kommandot ”hwclock” med alternativet ”–systohc”.

$ sudo hwclock --systohc$ sudo hwclock2019-10-23 13:03:56.466724-0400

bra!,

Du har synkroniserat hårdvaruklockan med det aktuella systemdatumet.

slutsats

i dagens handledning lärde du dig hur du enkelt kan ställa in datumet på alla Linux-system.

Du lärde dig att du kan ställa in tidszonen och låta systemd-timesyncd-demonen utföra tidssynkroniseringen.

om du letar efter mer exakta och effektiva tidssynkroniseringstekniker lärde du dig att du kan använda antingen chrony eller NTP för att uppnå detta resultat.

du såg också att det är möjligt att ställa in datumet statiskt med datumkommandot.,

om du är intresserad av Linux systemadministration har vi massor av handledning i ämnet.