Úlohy Cron obvykle běží v místním čase definovaném v systému. Můžete však upřednostnit spuštění úlohy Cron v jiném časovém pásmu, aniž byste nutně museli měnit čas a datum serveru.
Místní čas můžete zkontrolovat pomocí příkazu timedatectl takto:
$ timedatectl
Příkaz date můžete také použít následovně:
$ datum
Jak tedy můžete nastavit jiné časové pásmo pro vaše Crontabs? Pojďme to zjistit.
Jak nastavit časové pásmo pro Crontabs
Ve vašem místním systému Linux jsou časová pásma obvykle uvedena v souboru / usr / share / zoneinfo adresář. Adresář obsahuje seznam kontinentů a zemí a jejich časová pásma, jak je uvedeno níže.
$ ls / usr / share / zoneinfo /
Aktuální zobrazenou časovou zónu můžete snadno upravit pomocí zobrazené syntaxe. Chcete-li například nastavit systém na čas v japonském Tokiu, jednoduše proveďte:
$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtimeNelze však změnit čas vašeho systému, zvláště když více uživatelů naplánuje různé úlohy Cron. To by ovlivnilo čas, kdy budou spuštěny jejich úlohy Cron.
Naštěstí můžete nakonfigurovat konkrétní časové pásmo pro svou úlohu Cron následujícím způsobem:
Nejprve musíte exportovat proměnnou TZ do skriptu prostředí Shell před dalšími položkami prostředí. Dále přejděte do své crontab a použijte proměnnou prostředí crontab CRON_TZ na začátku souboru crontab.
Předpokládám, že chci nastavit, aby úloha Cron spouštěla každý den záložní skript ve 14:20 Evropa / Londýn čas a ne můj místní čas. Můj místní čas je 2 hodiny před londýnským časem, takže v 14:20 v Londýně bude můj místní čas 16:20 nebo 1420 HRS.
Nejprve přejděte do souboru skriptu Shell a exportujte proměnnou TZ před dalšími položkami skriptu. Podívejte se, co jsem udělal ve svém skriptu Shell.
EXPORT TZ = Evropa / Londýn
Uložte změny a ukončete skript.
Dále otevřete soubor crontab spuštěním příkazu:
$ crontab -eNezapomeňte definovat proměnnou crontab CRON_TZ před všemi ostatními položkami Cron následovně.
CRON_TZ = Evropa / Londýn20 14 * * * / home / james / backup.sh
Uložte a opusťte crontab. Abyste si byli jisti nastavením, můžete seznam crontab vypsat pomocí příkazu:
$ crontab -lKdyž tedy hodiny začaly 14:20 londýnského času, což odpovídá 16:40 místního času nebo 1620 HRS, zálohování proběhlo úspěšně.
Závěr
Tato příručka je dokonalou ukázkou toho, že pro své Crontabs můžete skutečně nastavit určené časové pásmo, aniž byste změnili systémový čas. Tímto způsobem můžete nakonfigurovat různé úkoly tak, aby se spouštěly v různých časových pásmech, aby vyhovovaly vašim potřebám, například pokud chcete posílat e-maily předplatitelům určitého časového pásma v jejich čase, a nikoli v místním čase.