Običajno se opravila Cron izvajajo po lokalnem času, določenem v sistemu. Vendar lahko raje zaženete opravilo Cron v drugem časovnem pasu, ne da bi nujno spremenili čas in datum strežnika.
Lokalni čas lahko preverite z ukazom timedatectl, kot sledi:
$ timedatectl
Ukaz date lahko uporabite tudi na naslednji način:
$ datum
Torej, kako lahko nastavite drugačen časovni pas za svoje Crontabs? Pa ugotovimo.
Kako nastaviti časovni pas za Crontabs
V vašem lokalnem sistemu Linux so časovni pasovi običajno določeni v / usr / share / zoneinfo imenik. Imenik vsebuje seznam celin in držav ter njihove časovne pasove, kot je prikazano spodaj.
$ ls / usr / share / zoneinfo /
Trenutni časovni pas lahko enostavno prilagodite drugemu s prikazano sintakso. Na primer, če želite sistem nastaviti v času v Tokiu na Japonskem, preprosto izvedite:
$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtimeVendar časa sistema ne morete spremeniti, še posebej, če več uporabnikov načrtuje različna opravila Cron. To bi vplivalo na čas izvajanja njihovih delovnih mest za Cron.
Na srečo lahko določite časovni pas za opravilo Cron, kot sledi:
Najprej morate izvesti spremenljivko TZ v skriptu Shell pred drugimi vnosi Shell. Nato odprite svoj crontab in uporabite spremenljivko okolja crontab CRON_TZ na začetku datoteke crontab.
Recimo, da želim nastaviti opravilo Cron, da bo vsak dan ob 14:20 uri zaganjal skript Evropa / London čas in ne moj lokalni čas. Moj lokalni čas je za 2 uri pred londonskim, zato bo ob 14.20 v Londonu moj lokalni čas ob 16.20 ali 1420 HRS.
Najprej se pomaknite do datoteke skripta Shell in izvozite spremenljivko TZ pred drugimi vnosi skripta. Preverite, kaj sem počel v mojem skriptu Shell.
IZVOZ TZ = Evropa / London
Shranite spremembe in zaprite skript.
Nato dostopite do datoteke crontab tako, da zaženete ukaz:
$ crontab -ePrepričajte se, da ste definirali spremenljivko crontab CRON_TZ pred vsemi drugimi vnosi Cron, kot sledi.
CRON_TZ = Evropa / London20 14 * * * / home / james / backup.sh
Shranite in zapustite crontab. Če želite biti prepričani o nastavitvah, lahko z ukazom navedete crontab:
$ crontab -lKo je ura odštevala 14:20 po londonskem času, kar ustreza 16:40 po lokalnem času ali 1620 HRS, je bilo varnostno kopiranje uspešno.
Zaključek
Ta priročnik je popoln prikaz, da lahko dejansko nastavite določen časovni pas za svoje Crontabs, ne da bi spremenili sistemski čas. Na ta način lahko konfigurirate različne naloge za izvajanje v različnih časovnih pasovih, ki ustrezajo vašim potrebam, na primer, če želite pošiljati e-pošto naročnikom določenega časovnega pasu v njihovem času in ne v vašem lokalnem času.