Vanligvis kjører Cron-jobber med 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 lokal tid ved å bruke kommandoen timedatectl som følger:
$ timedatectl
Du kan også bruke datokommandoen som følger:
$ dato
Så hvordan kan du angi en annen tidssone for Crontabs? La oss finne det ut.
Hvordan stille inn tidssonen for Crontabs
I ditt lokale Linux-system er tidssoner vanligvis spesifisert i / usr / share / zoneinfo katalog. Katalogen inneholder en liste over kontinenter og land og deres tidssoner, som vist nedenfor.
$ ls / usr / share / zoneinfo /
Du kan enkelt justere den aktuelle tidssonen til en annen ved hjelp av syntaksen som vises. For eksempel, for å sette systemet til tiden i Tokyo, Japan, bare utfør:
$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtimeDu kan imidlertid ikke endre systemets tid, spesielt når flere brukere planlegger forskjellige Cron-jobber. Dette vil påvirke tiden deres Cron-jobber vil kjøre.
Heldigvis kan du konfigurere en bestemt tidssone for Cron-jobben din som følger:
Først må du eksportere TZ-variabelen i Shell-skriptet før andre Shell-oppføringer. Deretter får du tilgang til crontab og bruker crontab-miljøvariabelen CRON_TZ i begynnelsen av crontab-filen.
Anta at jeg vil stille 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 to timer foran London-tid, så klokka 14.20 i London vil lokal tid være 16:20 eller 1420 HRS.
Først går du til Shell-skriptfilen og eksporterer TZ-variabelen før andre skriptoppføringer. Sjekk ut hva jeg gjorde i Shell-skriptet mitt.
EKSPORT TZ = Europa / London
Lagre endringene og avslutt skriptet.
Deretter får du tilgang til crontab-filen din ved å kjøre kommandoen:
$ crontab -eSørg for å definere crontab-variabelen CRON_TZ før alle de andre Cron-oppføringene som følger.
CRON_TZ = Europa / London20 14 * * * / home / james / backup.sh
Lagre og gå ut av crontab. For å være sikker på innstillingene, kan du liste crontab ved å bruke kommandoen:
$ crontab -lDa klokken tikket 14:20 London tid, som tilsvarer 16:40 lokal tid eller 1620 HRS, var sikkerhetskopien vellykket.
Konklusjon
Denne guiden er en perfekt demonstrasjon av at du faktisk kan angi en spesifisert tidssone for Crontabs uten å endre systemtiden. På denne måten kan du konfigurere forskjellige oppgaver for å kjøre i forskjellige tidssoner for å dekke dine behov, for eksempel hvis du vil sende e-post til abonnenter i en bestemt tidssone på det tidspunktet og ikke din lokale tid.