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/localtimeU 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 -eZorg ervoor dat u de crontab-variabele definieert CRON_TZ vóór alle andere Cron-vermeldingen als volgt:.
CRON_TZ=Europa/Londen20 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 -lDus 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.