Jak mogę ustawić strefę czasową dla crontabs?

Jak mogę ustawić strefę czasową dla crontabs?
Crontab, skrócona forma Stół Cron, jest zarówno poleceniem, jak i plikiem tekstowym w systemach UNIX/LINUX używanych do określenia planowania zadań CRON. Co to jest praca Cron? Zadanie CRON, powszechnie określane jako CRON, jest opartym na czasowym harmonogramie, który wykonuje zadania w systemach Linux w określonych momentach. Działa z pomocą Crond Daemon Cron Jobs są niezwykle pomocne w automatyzacji skontleur i innych poleceń, które należy wykonywać w regularnych odstępach czasu, co w innym przypadku byłyby żmudne, gdy wykonano ręcznie.

Zwykle zadania CRON działają za pomocą czasu lokalnego zdefiniowanego w systemie. Wolisz jednak uruchomić zadanie CRON w innej strefie czasowej, niekoniecznie zmieniając czas i datę serwera.

Możesz sprawdzić czas lokalny za pomocą polecenia timedAtectl w następujący sposób:

$ timedatectl

Możesz także użyć polecenia daty w następujący sposób:

$ data

Jak więc ustawić inną strefę czasową dla swoich crontabs? Dowiedzmy Się.

Jak ustawić strefę czasową dla crontabs

W lokalnym systemie Linux strefy czasowe są zwykle określone w /usr/share/zoneinfo informator. Katalog zawiera listę kontynentów i krajów oraz ich strefy czasowe, jak pokazano poniżej.

$ ls/usr/share/zoneinfo/

Możesz łatwo dostosować bieżącą strefę czasową do innej za pomocą pokazanej składni. Na przykład, aby ustawić system na czas w Tokio w Japonii, po prostu wykonaj:

$ sudo ln -sf/usr/share/zoneinfo/Asia/Tokyo/itp

Nie możesz jednak zmienić czasu swojego systemu, zwłaszcza gdy wielu użytkowników planuje różne zadania CRON. Wpłynęłoby to na czas, w którym będą działać ich prace CRON.

Na szczęście możesz skonfigurować konkretną strefę czasową dla swojego zadania CRON w następujący sposób:

Najpierw musisz wyeksportować zmienną TZ w skrypcie powłoki przed innymi wpisami powłoki. Następnie uzyskaj dostęp do Crontab i użyj Crontab Environme Cron Cron_Tz Na początku pliku crontab.

Załóżmy, że chcę ustawić zadanie Cron, aby uruchomić skrypt kopii zapasowej o 14:20 każdego dnia Europa/Londyn czas, a nie czas lokalny. Mój czas lokalny jest 2 godziny przed Londynem, więc o 14:20 w Londynie mój czas lokalny będzie 16:20 lub 1420 godzin.

Najpierw przejdź do pliku skryptu powłoki i wyeksportuj zmienną TZ przed innymi wpisami do skryptu. Sprawdź, co zrobiłem w moim skrypcie Shell.

Eksportuj TZ = Europa/Londyn

Zapisz zmiany i wyjdź ze skryptu.

Następnie uzyskaj dostęp do pliku crontab, uruchamiając polecenie:

$ crontab -e

Pamiętaj, aby zdefiniować zmienną crontab Cron_tz Przed wszystkimi innymi wpisami cron w następujący sposób.

Cron_tz = Europe/London
20 14 * * */Home/James/Backup.cii

Zapisz i wyjdź z crontab. Aby mieć pewność ustawień, możesz wymienić crontab za pomocą polecenia:

$ crontab -l

Kiedy więc zegar zaznaczył się 14:20 Londyn, który odpowiada 16:40 czasu lokalnego lub 1620 godzin, kopia zapasowa zakończyła się powodzeniem.

Wniosek

Ten przewodnik jest idealną demonstracją, że możesz ustawić określoną strefę czasową dla swoich crontabów bez zmiany czasu systemu. W ten sposób możesz skonfigurować różne zadania, aby działały w różnych strefach czasowych, aby odpowiadały Twoim potrzebom, na przykład, jeśli chcesz wysłać e -maile do subskrybentów określonej strefy czasowej w ich czasie, a nie czasu lokalnego.