crontab

Hur kan jag ställa in tidszonen för Crontabs?

Hur kan jag ställa in tidszonen för Crontabs?
Crontab, en förkortad form av Cron bord, är både ett kommando och en textfil i UNIX / Linux-system som används för att bestämma schemaläggningen av Cron-jobb. Vad är ett Cron-jobb? Ett Cron-jobb, även allmänt kallat Cron, är en tidsbaserad schemaläggare som utför uppgifter i Linux-system vid angivna tider. Det körs med hjälp av crond daemon Cron-jobb är extremt användbara för att automatisera Shell-skript och andra kommandon som behöver köras med jämna mellanrum, vilket annars skulle vara tråkigt när man gör det.

Vanligtvis kör Cron-jobb med den lokala tid som definierats i systemet. Du kanske dock föredrar att köra Cron-jobbet i en annan tidszon utan att nödvändigtvis ändra serverns tid och datum.

Du kan kontrollera din lokala tid med kommandot timedatectl enligt följande:

$ timedatectl

Du kan också använda datumkommandot enligt följande:

$ datum

Så hur kan du ställa in en annan tidszon för dina Crontabs? Låt oss ta reda på.

Hur man ställer in tidszonen för Crontabs

I ditt lokala Linux-system anges tidszoner vanligtvis i / usr / share / zoneinfo katalog. Katalogen innehåller en lista över kontinenter och länder och deras tidszoner, som visas nedan.

$ ls / usr / share / zoneinfo /

Du kan enkelt justera den aktuella tidszonen till en annan med syntaxen som visas. Till exempel, för att ställa in systemet till tiden i Tokyo, Japan, kör du bara:

$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtime

Du kan dock inte ändra systemets tid, speciellt när flera användare schemalägger olika Cron-jobb. Detta påverkar tiden för deras Cron-jobb.

Tack och lov kan du konfigurera en specifik tidszon för ditt Cron-jobb enligt följande:

Först måste du exportera TZ-variabeln i ditt Shell-skript före andra Shell-poster. Gå sedan till din crontab och använd crontab-miljövariabeln CRON_TZ i början av crontab-filen.

Antag att jag vill ställa in Cron-jobbet för att köra ett säkerhetskopieringsskript kl. 14.20 varje dag i Europa / London tid och inte min lokala tid. Min lokala tid är 2 timmar före London-tid, så klockan 14.20 i London kommer min lokala tid att vara 16:20 eller 1420 HRS.

Gå först till Shell-skriptfilen och exportera TZ-variabeln före andra skriptposter. Kolla in vad jag gjorde i mitt Shell-skript.

EXPORT TZ = Europa / London

Spara ändringarna och avsluta skriptet.

Gå sedan till din crontab-fil genom att köra kommandot:

$ crontab -e

Se till att definiera crontab-variabeln CRON_TZ före alla andra Cron-poster enligt följande.

CRON_TZ = Europa / London
20 14 * * * / home / james / backup.sh

Spara och avsluta crontab. För att vara säker på inställningarna kan du lista crontab med kommandot:

$ crontab -l

När klockan kryssade klockan 14.20 London tid, vilket motsvarar 16:40 lokal tid eller 1620 HRS, var säkerhetskopian framgångsrik.

Slutsats

Den här guiden är en perfekt demonstration av att du faktiskt kan ställa in en viss tidszon för dina Crontabs utan att ändra systemtiden. På så sätt kan du konfigurera olika uppgifter så att de körs i olika tidszoner för att passa dina behov, till exempel om du vill skicka e-post till prenumeranter i en viss tidszon vid deras tidpunkt och inte din lokala tid.

Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...
5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...
Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...