Hvordan kan jeg sette tidssonen for crontabs?

Hvordan kan jeg sette tidssonen for crontabs?
Crontab, en forkortet form av Cron Table, er både en kommando og en tekstfil i UNIX/Linux -systemer som brukes til å bestemme planleggingen av Cron -jobber. Hva er en Cron -jobb? En Cron-jobb, også mye omtalt som Cron, er en tidsbasert planlegger som utfører oppgaver i Linux-systemer til spesifiserte tidspunkter. Det kjøres ved hjelp av Crond Daemon Cron -jobber er ekstremt nyttige med å automatisere skallskript og andre kommandoer som må utføres med jevne mellomrom, noe som ellers ville være kjedelig når manuelt er ferdig.

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.