Met de opdracht timedatectl in Linux kunt u de systeemklok en de bijbehorende instellingen opvragen en wijzigen. Het komt als onderdeel van systemd, een vervanging voor de sysvinit daemon gebruikt in de GNU / Linux en Unix systemen.

In dit artikel bespreken we deze opdracht en de functies die deze biedt met behulp van relevante voorbeelden.

Tijdelijke voorbeelden

Opmerking - Alle voorbeelden die in dit artikel worden beschreven, zijn getest op GNU bash, versie 4.3.11 (1).

Systeem- / tijdinformatie van het systeem weergeven

Voer eenvoudig de opdracht uit zonder opdrachtregelopties of vlaggen en het geeft u informatie over de huidige datum en tijd van het systeem, evenals tijdgerelateerde instellingen. Hier is bijvoorbeeld de uitvoer toen ik de opdracht op mijn systeem uitvoerde:

 $ timedatectl Lokale tijd: za 2014-11-08 05:46:40 IST Universele tijd: za 2014-11-08 00:16:40 UTC Tijdzone: Azië / Kolkata (IST, +0530) NTP ingeschakeld: ja NTP gesynchroniseerd: ja RTC in lokale TZ: geen DST actief: nvt 

U kunt dus zien dat de uitvoer informatie bevat over LTC, UTC en tijdzone, evenals instellingen gerelateerd aan NTP, RTC en DST voor de localhost.

Werk de datum of tijd van het systeem bij met de optie voor de ingestelde tijd

Als u de systeemklok op een bepaalde datum of tijd wilt instellen, gebruikt u de optie set-time gevolgd door een tekenreeks met de nieuwe datum- / tijdinformatie. Om bijvoorbeeld de systeemtijd in te stellen op 06:40 uur, heb ik de volgende opdracht gebruikt:

 $ sudo timedatectl set-time "2014-11-08 06:40:00" 

en hier is de uitvoer:

 $ timedatectl Lokale tijd: za 2014-11-08 06:40:02 IST Universele tijd: za 2014-11-08 01:10:02 UTC Tijdzone: Azië / Kolkata (IST, +0530) NTP ingeschakeld: ja NTP gesynchroniseerd: geen RTC in lokale TZ: geen DST actief: n / a 

Houd er rekening mee dat het lokale tijdveld nu de bijgewerkte tijd weergeeft. Op dezelfde manier kunt u ook de systeemdatum bijwerken.

Werk de systeemtijdzone bij met behulp van de optie Tijdzone instellen

Om de systeemtijdzone op de opgegeven waarde in te stellen, kunt u de optie set-timezone gebruiken, gevolgd door de tijdzonewaarde. Om u te helpen met de taak, biedt de opdracht timedatectl instructie ook een andere nuttige optie. list-timezones biedt u een lijst met beschikbare tijdzones om uit te kiezen.

Hier is bijvoorbeeld de schuifbare lijst met tijdzones de opdracht timedatectl die op mijn systeem is gemaakt:

Om de huidige tijdzone van het systeem van Azië / Kolkata naar Azië / Kathmandu te veranderen, hier is de opdracht die ik heb gebruikt:

 $ timedatectl set-timezone Azië / Kathmandu 

en om de wijziging te verifiëren, hier is de uitvoer van de opdracht timedatectl :

 $ timedatectl Lokale tijd: za 2014-11-08 07:11:23 NPT Universele tijd: za 2014-11-08 01:26:23 UTC Tijdzone: Azië / Kathmandu (NPT, +0545) NTP ingeschakeld: ja NTP gesynchroniseerd: geen RTC in lokale TZ: geen DST actief: n / a 

U kunt zien dat de tijdzone is gewijzigd in de nieuwe waarde.

Configureer RTC

U kunt ook de opdracht timedatectl gebruiken om RTC (real-timeklok) te configureren. Voor degenen die zich niet bewust zijn, is RTC een computergestuurde computerklok die de tijd bijhoudt, zelfs wanneer het systeem is uitgeschakeld. De opdracht timedatectl biedt een optie set-local-rtc die kan worden gebruikt om de RTC in lokale tijd of universele tijd te behouden.

Voor deze optie is een boolean-argument vereist. Als 0 wordt geleverd, is het systeem geconfigureerd om de RTC in universele tijd te houden:

 $ timedatectl set-local-rtc 0 

maar in geval 1 wordt geleverd, zal het in plaats daarvan de RTC in plaatselijk houden.

 $ timedatectl set-local-rtc 1 

Een waarschuwing : het onderhouden van de RTC in de lokale tijdzone wordt niet volledig ondersteund en veroorzaakt verschillende problemen met tijdzonewijzigingen en zomertijdaanpassingen. Gebruik indien mogelijk RTC in UTC.

Een ander opmerkelijk punt is dat als set-local-rtc wordt aangeroepen en de optie --adjust-system-clock wordt doorgegeven, de systeemklok opnieuw wordt gesynchroniseerd vanaf de RTC, rekening houdend met de nieuwe instelling. Anders wordt de RTC gesynchroniseerd vanaf de systeemklok.

NTP-gebaseerde netwerktijdsynchronisatie configureren

NTP, of Network Time Protocol, is een netwerkprotocol voor kloksynchronisatie tussen computersystemen over pakketgeschakelde datalinknetwerken met variabele latentie. Het is bedoeld om alle deelnemende computers binnen enkele milliseconden van UTC te synchroniseren.

De opdracht timedatectl biedt een optie set-ntp die bepaalt of op NTP gebaseerde netwerktijdsynchronisatie is ingeschakeld. Deze optie verwacht een boolean-argument. Om NTP-gebaseerde tijdsynchronisatie in te schakelen, voert u de volgende opdracht uit:

 $ timedatectl set-ntp true 

Ga als volgt te werk om uit te schakelen:

 $ timedatectl set-ntp false 

Conclusie

Zoals duidelijk is uit de hierboven beschreven voorbeelden, is de opdracht timedatectl een handig hulpmiddel voor systeembeheerders die deze kunnen gebruiken om verschillende systeemklokken en RTC-configuraties aan te passen en externe servers te timedatectl . Ga voor meer informatie over het commando naar de man-pagina.