A Cron-feladatok általában a rendszerben meghatározott helyi idő szerint futnak. Előfordulhat azonban, hogy a Cron feladatot egy másik időzónában futtatja, anélkül, hogy szükségszerűen megváltoztatná a szerver idejét és dátumát.
A helyi időt ellenőrizheti a timedatectl paranccsal az alábbiak szerint:
$ timedatectl
A date parancsot az alábbiak szerint is használhatja:
$ date
Tehát hogyan állíthat be egy másik időzónát a Crontabs-hez? Találjuk ki.
A Crontabs időzónájának beállítása
A helyi Linux rendszerben az időzónákat általában a / usr / share / zoneinfo Könyvtár. A könyvtár tartalmazza a kontinensek és országok, valamint azok időzónáinak listáját, az alábbiak szerint.
$ ls / usr / share / zoneinfo /
Könnyedén beállíthatja az aktuális időzónát egy másikra a bemutatott szintaxissal. Például, ha a rendszert Japánban, Tokióban szeretné beállítani, egyszerűen hajtsa végre:
$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtimeA rendszer idejét azonban nem lehet megváltoztatni, különösen akkor, ha több felhasználó ütemezi a különböző Cron-feladatokat. Ez befolyásolná a Cron-munkájuk idejét.
Szerencsére az alábbiak szerint konfigurálhat egy adott időzónát a Cron-munkájához:
Először a Shell szkriptben lévő TZ változót kell exportálnia a többi Shell bejegyzés előtt. Ezután nyissa meg a crontab-ot, és használja a crontab CRON környezeti változót_TZ a crontab fájl elején.
Tegyük fel, hogy be akarom állítani a Cron feladatot, hogy minden nap 14: 20-kor futtasson biztonsági másolatot Európa / London és nem a helyi időm. A helyi időm 2 órával megelőzi a londoni időt, így Londonban 14:20 órakor a helyi időm 16:20 vagy 1420 HRS lesz.
Először lépjen a Shell szkriptfájlba, és exportálja a TZ változót minden más szkriptbejegyzés előtt. Nézze meg, mit csináltam a Shell szkriptemben.
EXPORT TZ = Európa / London
Mentse el a módosításokat, és lépjen ki a parancsfájlból.
Ezután a parancs futtatásával nyissa meg a crontab fájlt:
$ crontab -eÜgyeljen arra, hogy meghatározza a crontab változót CRON_TZ az összes többi Cron bejegyzés előtt az alábbiak szerint.
CRON_TZ = Európa / London20 14 * * * / home / james / backup.SH
Mentse el és lépjen ki a crontab-ból. A beállítások meggyőződéséhez felsorolhatja a crontab parancsot a következő paranccsal:
$ crontab -lTehát, amikor az óra londoni idő szerint 14: 20-kor ketyegett, ami helyi idő szerint 16:40 vagy 1620 HRS-nek felel meg, a biztonsági mentés sikeres volt.
Következtetés
Ez az útmutató tökéletesen bemutatja, hogy valóban beállíthat egy meghatározott időzónát a Crontabs-hez anélkül, hogy megváltoztatná a rendszer idejét. Így konfigurálhat különböző feladatokat úgy, hogy különböző időzónákban fussanak az Ön igényeinek megfelelően, például ha e-maileket szeretne küldeni egy bizonyos időzónájú előfizetőknek az adott időben, és nem a helyi idő szerint.