Paprastai „Cron“ darbai vykdomi naudojant sistemoje apibrėžtą vietos laiką. Tačiau galbūt norėsite paleisti „Cron“ darbą kita laiko juosta, nebūtinai pakeisdami serverio laiką ir datą.
Galite patikrinti savo vietos laiką naudodami komandą „timedatectl“ taip:
$ timedatectl
Taip pat galite naudoti komandą data taip:
$ data
Taigi, kaip galite nustatyti kitą „Crontabs“ laiko juostą? Išsiaiškinkime.
Kaip nustatyti „Crontabs“ laiko juostą
Vietinėje „Linux“ sistemoje laiko juostos paprastai nurodomos / usr / share / zoneinfo kataloge. Kataloge yra žemynų ir šalių bei jų laiko juostų sąrašas, kaip parodyta žemiau.
$ ls / usr / share / zoneinfo /
Naudodami parodytą sintaksę, galite lengvai koreguoti esamą laiko juostą. Pavyzdžiui, norėdami nustatyti sistemą tokiam laikui Tokijuje, Japonijoje, tiesiog vykdykite:
$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtimeTačiau negalite pakeisti savo sistemos laiko, ypač kai keli vartotojai suplanuoja skirtingus „Cron“ darbus. Tai turėtų įtakos jų „Cron“ darbų vykdymo laikui.
Laimei, galite sukonfigūruoti konkrečią „Cron“ darbo laiko juostą taip:
Pirmiausia turite eksportuoti TZ kintamąjį į savo „Shell“ scenarijų prieš kitus „Shell“ įrašus. Tada prieikite prie savo „crontab“ ir naudokite „crontab“ aplinkos kintamąjį CRON_TZ crontab failo pradžioje.
Tarkime, kad noriu nustatyti „Cron“ užduotį paleisti atsarginį scenarijų kiekvieną dieną 2:20 val Europa / Londonas ne mano vietos laiku. Mano vietos laikas yra 2 valandos anksčiau nei Londono laikas, taigi Londone 14:20 val. Mano vietos laikas bus 16:20 arba 1420 HRS.
Pirmiausia eikite į „Shell“ scenarijaus failą ir eksportuokite TZ kintamąjį prieš kitus scenarijaus įrašus. Patikrinkite, ką padariau savo „Shell“ scenarijuje.
EKSPORTAS TZ = Europa / Londonas
Išsaugokite pakeitimus ir išeikite iš scenarijaus.
Tada pasiekite savo crontab failą paleisdami komandą:
$ crontab -eBūtinai apibrėžkite crontab kintamąjį CRON_TZ prieš visus kitus „Cron“ įrašus taip.
CRON_TZ = Europa / Londonas20 14 * * * / home / james / backup.sh
Išsaugokite ir išeikite iš crontab. Norėdami įsitikinti nustatymais, galite išvardyti crontab naudodami komandą:
$ crontab -lTaigi, kai laikrodis pažymėjo 14:20 Londono laiku, kuris atitinka 16:40 vietos laiku arba 1620 HRS, atsarginė kopija buvo sėkminga.
Išvada
Šis vadovas puikiai parodo, kad iš tikrųjų galite nustatyti nurodytą „Crontabs“ laiko juostą, nekeisdami savo sistemos laiko. Tokiu būdu galite sukonfigūruoti skirtingas užduotis vykdyti skirtingomis laiko juostomis, kad atitiktų jūsų poreikius, pavyzdžiui, jei norite siųsti el. Laiškus tam tikros laiko juostos abonentams jų, o ne vietiniu laiku.