Normalt kører Cron-job den lokale tid, der er defineret i systemet. Du foretrækker dog at køre Cron-jobbet i en anden tidszone uden nødvendigvis at ændre din servers tid og dato.
Du kan kontrollere din lokale tid ved hjælp af timedatectl-kommandoen som følger:
$ timedatectl
Du kan også bruge datokommandoen som følger:
$ dato
Så hvordan kan du indstille en anden tidszone til dine Crontabs? Lad os finde ud af det.
Sådan indstilles tidszonen for Crontabs
I dit lokale Linux-system er tidszoner normalt angivet i / usr / share / zoneinfo vejviser. Mappen indeholder en liste over kontinenter og lande og deres tidszoner, som vist nedenfor.
$ ls / usr / del / zoneinfo /
Du kan nemt justere den aktuelle tidszone til en anden ved hjælp af den viste syntaks. For eksempel, for at indstille systemet til tiden i Tokyo, Japan, skal du blot udføre:
$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtimeDu kan dog ikke ændre dit systems tid, især når flere brugere planlægger forskellige Cron-job. Dette vil påvirke den tid, deres Cron-job kører.
Heldigvis kan du konfigurere en bestemt tidszone til dit Cron-job som følger:
Først skal du eksportere TZ-variablen i dit Shell-script før andre Shell-poster. Dernæst skal du få adgang til din crontab og bruge crontab-miljøvariablen CRON_TZ i starten af crontab-filen.
Antag, at jeg vil indstille Cron-jobbet til at køre et backup-script kl. 14:20 hver dag i Europa / London tid og ikke min lokale tid. Min lokale tid er 2 timer foran London-tid, så kl. 14.20 i London vil min lokale tid være 16:20 eller 1420 HRS.
Gå først til Shell-scriptfilen og eksporter TZ-variablen før andre script-poster. Tjek hvad jeg gjorde i mit Shell-script.
EXPORT TZ = Europa / London
Gem ændringerne, og afslut scriptet.
Gå derefter til din crontab-fil ved at køre kommandoen:
$ crontab -eSørg for at definere crontab-variablen CRON_TZ før alle de andre Cron-poster som følger.
CRON_TZ = Europa / London20 14 * * * / home / james / backup.sh
Gem og afslut crontab. For at være sikker på indstillingerne kan du liste crontab ved hjælp af kommandoen:
$ crontab -lDa uret krydsede kl. 14.20 London tid, hvilket svarer til kl. 16:40 lokal tid eller 1620 HRS, var sikkerhedskopien vellykket.
Konklusion
Denne guide er en perfekt demonstration af, at du rent faktisk kan indstille en bestemt tidszone til dine Crontabs uden at ændre din systemtid. På denne måde kan du konfigurere forskellige opgaver til at køre i forskellige tidszoner, der passer til dine behov, for eksempel hvis du vil sende e-mails til abonnenter i en bestemt tidszone på deres tidspunkt og ikke din lokale tid.