crontab

Hoe kan ik de tijdzone voor Crontabs instellen?

Hoe kan ik de tijdzone voor Crontabs instellen?
Crontab, een verkorte vorm van Cron-tabel, is zowel een commando als een tekstbestand in UNIX/Linux-systemen dat wordt gebruikt om de planning van Cron-taken te bepalen. Wat is een Cron-job?? Een Cron-taak, ook algemeen eenvoudigweg Cron genoemd, is een op tijd gebaseerde planner die taken op bepaalde tijdstippen in Linux-systemen uitvoert. Het draait met behulp van de crond-daemon. Cron-taken zijn uiterst nuttig bij het automatiseren van Shell-scripts en andere opdrachten die met regelmatige tussenpozen moeten worden uitgevoerd, wat anders vervelend zou zijn als ze handmatig worden gedaan.

Gewoonlijk worden Cron-taken uitgevoerd met de lokale tijd die in het systeem is gedefinieerd. U kunt er echter de voorkeur aan geven de Cron-taak in een andere tijdzone uit te voeren zonder noodzakelijkerwijs de tijd en datum van uw server te wijzigen.

U kunt uw lokale tijd als volgt controleren met de opdracht timedatectl:

$ timedatectl

U kunt het datumcommando ook als volgt gebruiken:

$ datum

Dus, hoe kun je een andere tijdzone instellen voor je Crontabs? Dat zoeken we uit.

Hoe de tijdzone voor Crontabs in te stellen

In uw lokale Linux-systeem worden tijdzones meestal gespecificeerd in de /usr/share/zoneinfo map. De directory bevat een lijst met continenten en landen en hun tijdzones, zoals hieronder weergegeven.

$ ls /usr/share/zoneinfo/

U kunt de huidige tijdzone eenvoudig aanpassen aan een andere met behulp van de getoonde syntaxis. Om het systeem bijvoorbeeld in te stellen op de tijd in Tokio, Japan, voert u eenvoudig het volgende uit:

$ sudo ln -sf /usr/share/zoneinfo/Azië/Tokyo /etc/localtime

U kunt de tijd van uw systeem echter niet wijzigen, vooral niet wanneer meerdere gebruikers verschillende Cron-taken plannen. Dit zou van invloed zijn op de tijd dat hun Cron-taken worden uitgevoerd.

Gelukkig kunt u als volgt een specifieke tijdzone voor uw Cron-taak configureren:

Eerst moet u de TZ-variabele in uw Shell-script exporteren voordat u andere Shell-items kunt maken. Open vervolgens uw crontab en gebruik de crontab-omgevingsvariabele CRON_TZ aan het begin van het crontab-bestand.

Stel dat ik de Cron-taak wil instellen om elke dag om 14:20 uur een back-upscript uit te voeren in Europa/Londen tijd en niet mijn lokale tijd. Mijn lokale tijd is 2 uur voor in Londen, dus om 14:20 uur in Londen is mijn lokale tijd 16:20 uur of 1420 uur.

Ga eerst naar het Shell-scriptbestand en exporteer de TZ-variabele voor andere scriptitems. Bekijk wat ik deed in mijn Shell-script.

EXPORT TZ=Europa/Londen

Sla de wijzigingen op en verlaat het script.

Open vervolgens uw crontab-bestand door de opdracht uit te voeren:

$ crontab -e

Zorg ervoor dat u de crontab-variabele definieert CRON_TZ vóór alle andere Cron-vermeldingen als volgt:.

CRON_TZ=Europa/Londen
20 14 * * * /home/james/back-up.sh

Bewaar en verlaat de crontab. Om zeker te zijn van de instellingen, kun je de crontab weergeven met het commando:

$ crontab -l

Dus toen de klok 14:20 uur Londense tijd tikte, wat overeenkomt met 16:40 uur lokale tijd of 1620 uur, was de back-up succesvol.

Conclusie

Deze gids is een perfecte demonstratie dat je een specifieke tijdzone voor je Crontabs kunt instellen zonder je systeemtijd te wijzigen. Op deze manier kunt u verschillende taken configureren om in verschillende tijdzones te worden uitgevoerd om aan uw behoeften te voldoen, bijvoorbeeld als u e-mails wilt verzenden naar abonnees van een bepaalde tijdzone op hun tijd en niet uw lokale tijd.

Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...
5 beste arcade-spellen voor Linux
Tegenwoordig zijn computers serieuze machines die worden gebruikt om te gamen. Als je de nieuwe hoge score niet kunt halen, weet je wat ik bedoel. In ...
Strijd om Wesnoth 1.13.6 Ontwikkeling vrijgegeven
Strijd om Wesnoth 1.13.6 die vorige maand werd uitgebracht, is de zesde ontwikkelingsrelease in de 1.13.x-serie en het levert een aantal verbeteringen...