Vanligvis kjører Cron Jobs ved hjelp av den lokale tiden som er definert i systemet. Imidlertid foretrekker du kanskje å kjøre Cron -jobben i en annen tidssone uten nødvendigvis å endre serverens tid og dato.
Du kan sjekke din lokale tid ved å bruke Timedatectl -kommandoen som følger:
$ timedatectl
Du kan også bruke datakommandoen som følger:
$ Dato
Så hvordan kan du sette en annen tidssone for crontabene dine? La oss finne det ut.
Hvordan sette tidssonen for crontabs
I ditt lokale Linux -system er tidssoner vanligvis spesifisert i /usr/share/soneinfo katalog. Katalogen inneholder en liste over kontinenter og land og deres tidssoner, som vist nedenfor.
$ ls/usr/share/soneinfo/
Du kan enkelt justere den nåværende tidssonen til en annen ved hjelp av syntaksen som vises. For å stille systemet til å sette systemet til tiden i Tokyo, Japan, bare utføre: for eksempel:
$ sudo ln -sf/usr/share/soneinfo/Asia/Tokyo/etc/localime
Du kan imidlertid ikke endre systemets tid, spesielt når flere brukere planlegger forskjellige Cron -jobber. Dette vil påvirke tiden deres Cron -jobber vil løpe.
Heldigvis kan du konfigurere en spesifikk tidssone for Cron -jobben din som følger:
Først må du eksportere TZ -variabelen i skallskriptet ditt før andre skalloppføringer. Deretter får du tilgang til Crontab og bruk Crontab Environment Variable Cron_Tz Ved starten av crontab -filen.
Anta at jeg vil sette Cron -jobben til å kjøre et backup -skript klokka 14.20 hver dag i Europa/London tid og ikke min lokale tid. Min lokale tid er 2 timer foran London -tiden, så kl. 14.20 i London vil min lokale tid være 16:20 eller 1420 timer.
Gå først over til Shell -skriptfilen og eksporter TZ -variabelen før andre skriptoppføringer. Sjekk ut hva jeg gjorde i skallskriptet mitt.
Eksporter TZ = Europa/London
Lagre endringene og avslutt skriptet.
Deretter får du tilgang til CRONTAB -filen din ved å kjøre kommandoen:
$ crontab -e
Sørg for å definere crontab -variabelen Cron_tz Før alle de andre cron -oppføringene som følger.
CRON_TZ = Europa/London
20 14 * * */Hjem/James/Backup.sh
Lagre og gå ut av crontab. For å være sikker på innstillingene, kan du liste Crontab ved hjelp av kommandoen:
$ crontab -l
Så da klokken krysset av kl. 14.20 London, som tilsvarer 16:40 lokal tid eller 1620 timer, var sikkerhetskopien vellykket.
Konklusjon
Denne guiden er en perfekt demonstrasjon av at du faktisk kan angi en spesifisert tidssone for crontabene dine uten å endre systemtid. På denne måten kan du konfigurere forskjellige oppgaver for å kjøre i forskjellige tidssoner slik at de passer dine behov, for eksempel hvis du vil sende e -post til abonnenter av en viss tidssone på deres tid og ikke din lokale tid.