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.