Úlohy Cron zvyčajne prebiehajú s použitím miestneho času definovaného v systéme. Môžete však uprednostniť spustenie úlohy Cron v inom časovom pásme bez toho, aby ste nevyhnutne zmenili čas a dátum svojho servera.
Svoj miestny čas môžete skontrolovať pomocou príkazu timedatectl takto:
$ timedatectl
Príkaz date môžete použiť aj takto:
$ dátum
Ako teda môžete nastaviť iné časové pásmo pre svoje Crontabs? Poďme zistiť.
Ako nastaviť časové pásmo pre Crontabs
Vo vašom miestnom systéme Linux sú časové pásma zvyčajne uvedené v / usr / share / zoneinfo adresár. Adresár obsahuje zoznam kontinentov a krajín a ich časové pásma, ako je uvedené nižšie.
$ ls / usr / share / zoneinfo /
Aktuálnu časovú zónu môžete ľahko upraviť na inú pomocou zobrazenej syntaxe. Napríklad ak chcete nastaviť systém na čas v Tokiu v Japonsku, jednoducho vykonajte:
$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtimeNemôžete však zmeniť čas vášho systému, najmä keď viacerí používatelia plánujú rôzne úlohy Cron. To by ovplyvnilo čas, kedy budú spustené ich úlohy Cron.
Našťastie môžete nakonfigurovať konkrétne časové pásmo pre svoju úlohu Cron nasledovne:
Najskôr je potrebné exportovať premennú TZ do skriptu Shell pred ďalšími položkami Shell. Ďalej vstúpte do svojej crontab a použite premennú prostredia crontab CRON_TZ na začiatku súboru crontab.
Predpokladajme, že chcem nastaviť, aby úloha Cron spúšťala každý deň v 14:20 záložný skript Európa / Londýn čas a nie môj miestny čas. Môj miestny čas je 2 hodiny pred londýnskym časom, takže o 14:20 v Londýne bude môj miestny čas 16:20 alebo 1420 HRS.
Najskôr prejdite do súboru skriptu Shell a exportujte premennú TZ pred akékoľvek ďalšie položky skriptu. Pozrite sa, čo som urobil vo svojom skripte Shell.
VÝVOZ TZ = Európa / Londýn
Uložte zmeny a ukončite skript.
Ďalej prejdite do súboru crontab spustením príkazu:
$ crontab -eNezabudnite definovať premennú crontab CRON_TZ pred všetky ostatné položky Cron nasledujúcim spôsobom.
CRON_TZ = Európa / Londýn20 14 * * * / domov / james / zálohovanie.š
Uložte a ukončite kartu crontab. Pre istotu v nastaveniach môžete zoznam crontab uviesť pomocou príkazu:
$ crontab -lKeď teda hodiny tikali o 14:20 londýnskeho času, čo zodpovedá 16:40 miestneho času alebo 1620 HRS, zálohovanie bolo úspešné.
Záver
Táto príručka je ukážkou toho, že pre svoje karty Crontab môžete skutočne nastaviť určené časové pásmo bez zmeny systémového času. Týmto spôsobom môžete nakonfigurovať rôzne úlohy tak, aby bežali v rôznych časových pásmach, aby vyhovovali vašim potrebám, napríklad ak chcete posielať e-maily predplatiteľom určitého časového pásma v ich čase, a nie v miestnom čase.