Rozwiązanie społecznościowe

Uruchamiaj zaplanowane zadania w ZimaOS za pomocą Zima Cron

An official January 2026 IceWhale tutorial for installing Zima Cron through zpkg and creating interval or cron-expression tasks. Later replies reported inconsistent persistence after reboot, including an open issue where zima-cron.service becomes inactive.

Zima Cron jest jednym z niewielu narzędzi do planowania zadań publikowanych bezpośrednio dla ZimaOS, a nie dodawanych jako ogólny kontener Docker. Samouczek IceWhale ze stycznia 2026 roku pokazuje, jak zainstalować je za pomocą zpkg, twórz zadania oparte na interwałach lub wyrażeniach cron, weryfikuj ich działanie w dziennikach i używaj ich do skryptów, kopii zapasowych lub rutynowej konserwacji.

W wątku źródłowym przedstawiono również drugą, istotną kwestię, którą skrócona wersja tego artykułu wcześniej nadmiernie uprościła: trwałość po ponownym uruchomieniu była różna w zależności od systemu. Niektórzy użytkownicy ZimaOS 1.5.3 i 1.5.4 utracili wszystkie zaplanowane zadania lub stwierdzili zima-cron.service nieaktywne po ponownym uruchomieniu, podczas gdy w czystym środowisku testowym zadania przetrwały ponowne uruchomienie. Właściwy wniosek brzmi zatem: „oficjalny harmonogram z zależnością trwałości od wersji”, a nie po prostu „zainstaluj i zapomnij”.

Zainstaluj Zima Cron za pomocą oficjalnego menedżera pakietów zpkg

Samouczek IceWhale rozpoczyna się w terminalu ZimaOS i wykorzystuje:

zpkg install zima_cron

Źródło wyraźnie stwierdza, że po instalacji nie jest wymagane ponowne uruchomienie. Zima Cron powinien następnie pojawić się na liście aplikacji w interfejsie internetowym ZimaOS.

Panel ZimaOS pokazujący Zima Cron zainstalowany na liście aplikacji po uruchomieniu zpkg install zima_cron
Samouczek IceWhale pokazuje Zima Cron jako aplikację natychmiast po instalacji za pomocą zpkg.

Utwórz bezpieczne zadanie testowe przed zaplanowaniem czegokolwiek ważnego

Oficjalny samouczek celowo wykorzystuje nieszkodliwe, jednominutowe zadanie rejestrowania zamiast destrukcyjnego polecenia konserwacyjnego. To dobra praktyka w przypadku każdego harmonogramu: najpierw sprawdź, czy backend wykonuje zadania, harmonogram jest poprawnie interpretowany, a dane wyjściowe są zapisywane w oczekiwanym miejscu, dopiero potem automatyzuj tworzenie kopii zapasowych lub ponowne uruchamianie usług.

Ekran tworzenia zadania Zima Cron z nazwą zadania, poleceniem, typem harmonogramu i polami interwału
Edytor zadań obsługuje polecenie oraz harmonogram interwałowy albo standardowe wyrażenie cron.

Oficjalny przykład dopisuje znacznik czasu do pliku dziennika:

bash -c 'echo "$(date "+%Y-%m-%d %H:%M:%S") zima cron works" >> /DATA/zima_cron_test.log'

Ponieważ to polecenie tylko dopisuje tekst, nadaje się do sprawdzania harmonogramu bez modyfikowania stanu aplikacji.

Używaj harmonogramu interwałowego do prostych powtórzeń

Harmonogram interwałowy jest odpowiedni, gdy dokładna godzina nie ma znaczenia. Przykłady obejmują lekkie sprawdzanie stanu co kilka minut lub zadanie czyszczące uruchamiane co kilka godzin.

W przypadku ważnych zadań pamiętaj, że „co 24 godziny” nie zawsze oznacza to samo co „codziennie o 4:00”, zwłaszcza po ponownym uruchomieniu usług. Użyj wyrażenia cron, gdy liczy się konkretna godzina.

Używaj standardowych wyrażeń cron do harmonogramów opartych na kalendarzu

Oficjalny samouczek pokazuje również standardową składnię cron. Na przykład:

*/5 * * * *

uruchamia się co pięć minut. Standardowe wyrażenie cron może określać harmonogramy dzienne, tygodniowe, miesięczne lub właściwe dla konkretnych dni tygodnia, dzięki czemu Zima Cron jest bardziej elastyczny niż sam stały interwał.

Przed wdrożeniem skomplikowanego wyrażenia przetestuj je za pomocą nieszkodliwego polecenia rejestrowania i zweryfikuj co najmniej dwa pomyślne wykonania.

Weryfikuj wykonywanie w Zima Cron i w pliku wyjściowym

Lista zadań Zima Cron pokazująca zaplanowane zadanie testowe z dziennikami pomyślnego wielokrotnego wykonania
Oficjalny samouczek weryfikuje harmonogram za pomocą stanu zadania i dzienników wielokrotnego wykonania, zamiast zakładać, że zapisane zadanie rzeczywiście działa.

Kompletny test powinien sprawdzać zarówno interfejs harmonogramu, jak i oczekiwany skutek — na przykład nowe wiersze w /DATA/zima_cron_test.log. Pozwala to wykryć sytuacje, w których zadanie istnieje w interfejsie, ale jego polecenie kończy się niepowodzeniem z powodu uprawnień, ścieżek, cudzysłowów lub braku plików binarnych.

Planowanie ponownego uruchamiania aplikacji wymaga właściwej granicy polecenia

Użytkownik zapytał, jak codziennie o 4:00 ponownie uruchamiać Home Assistant. Wątek nie zawierał oficjalnego polecenia IceWhale do zarządzania konkretną zainstalowaną aplikacją, dlatego ten artykuł nie powinien go wymyślać. Zima Cron może uruchamiać polecenia powłoki, ale dokładne polecenie dla aplikacji zależy od sposobu zarządzania nią przez ZimaOS oraz od tego, czy ponowne uruchamianie jej poza warstwą zarządzania aplikacjami jest bezpieczne.

Używaj harmonogramu do poleceń, które zostały już ręcznie zweryfikowane. Nie przeprowadzaj pierwszego testu na produkcyjnym restarcie aplikacji.

Najważniejsze zastrzeżenie: niektórzy użytkownicy tracili zadania po ponownym uruchomieniu

26 stycznia użytkownik ZimaOS 1.5.3 zgłosił, że zapisane zadania znikały po ponownym uruchomieniu. 777-Spider odpowiedział, że IceWhale sprawdzi ten problem. Następnie kolejni użytkownicy odtworzyli podobne zachowanie, co uczyniło z niego rzeczywisty problem z niezawodnością, a nie jedynie jednorazowe nieporozumienie.

Później kontrolowana czysta instalacja podobno działała prawidłowo: zima-cron.service pozostawały aktywne, zadania nadal były widoczne po ponownym uruchomieniu, a rejestrowanie było kontynuowane. Wyglądało to obiecująco, ale nie był to koniec tej historii.

Czyste testy i testy w warunkach rzeczywistych dały różne wyniki

Jeden z późniejszych uczestników zainstalował Zima Cron za pomocą zpkg, utworzył zadanie, a następnie zgłosił po ponownym uruchomieniu, że zadania zniknęły i nie można było utworzyć nowych. Stan jego usługi wyglądał następująco:

zima-cron.service
Załadowano: załadowano
Aktywna: nieaktywna (zakończona)

Było to bezpośrednio sprzeczne z wynikiem uzyskanym na czystym systemie, gdzie usługa uruchamiała się automatycznie, a zadania pozostawały zachowane. Właściwa interpretacja jest taka, że problemy z zachowaniem zadań zależały od środowiska lub kompilacji i nie zostały jednoznacznie rozwiązane dla każdego użytkownika.

Co sprawdzić po ponownym uruchomieniu

W wątku zalecono sprawdzenie, czy usługa jest nadal aktywna i czy instalacja została wykonana prawidłowo za pomocą zpkg. W przypadku wdrożenia krytycznego minimalny zakres kontroli jakości po ponownym uruchomieniu powinien obejmować:

  1. Celowo uruchom ponownie maszynę z ZimaOS.
  2. Potwierdź, że Zima Cron nadal się wyświetla.
  3. Potwierdź, że zapisane zadanie jest nadal widoczne.
  4. Potwierdź, że usługa zaplecza jest aktywna.
  5. Poczekaj na następne zaplanowane wykonanie.
  6. Weryfikuj rzeczywisty wynik zadania, a nie tylko stan w interfejsie.

Problem z zachowaniem zadań był również publicznie zgłaszany

Projekt Zima Cron ma publiczne zgłoszenie opisujące utratę zadań i nieaktywną usługę po ponownym uruchomieniu. Zanim zaczniesz na nim polegać przy bezobsługowej konserwacji, sprawdź aktualny stan zgłoszenia dotyczącego zachowania zadań po ponownym uruchomieniu.

Nie używaj niesprawdzonego harmonogramu jako jedynego wyzwalacza kopii zapasowych

Zima Cron jest przydatny do automatyzacji, ale zaplanowana kopia zapasowa, która po ponownym uruchomieniu po cichu znika, jest gorsza niż ręczna kopia zapasowa, o której wiadomo, że się nie wykonała. Jeśli zadanie jest ważne, połącz testowanie harmonogramu z niezależnym sprawdzaniem stanu kopii zapasowych i weryfikacją odtwarzania.

Najczęściej zadawane pytania dotyczące Zima Cron

Czy polecenie instalacji Zima Cron jest oficjalne?

Tak. zpkg install zima_cron został opublikowany przez 777-Spider w samouczku IceWhale.

Czy można używać zwykłych wyrażeń cron?

Tak. Oficjalny samouczek obsługuje zarówno harmonogramy interwałowe, jak i standardowe wyrażenia cron.

Czy zadania na pewno przetrwają ponowne uruchomienie?

Na podstawie wątku źródłowego nie można udzielić uniwersalnej gwarancji. Niektóre testy na czystych systemach zakończyły się powodzeniem, podczas gdy inne systemy w wersji 1.5.x wielokrotnie traciły zadania lub pozostawiały nieaktywną usługę.

Co należy zrobić, zanim powierzę mu krytyczne zadanie?

Wykonaj rzeczywisty test ponownego uruchomienia, sprawdź, czy zadanie nadal jest zdefiniowane, i potwierdź, że polecenie wykonuje się po nim pomyślnie.