| Termin | Definicja |
|---|---|
| Harmonogram zadań systemowych | Harmonogram zadań systemowych to zaplanowany cykl wykonywania wbudowanych operacji utrzymaniowych serwera. Rola harmonogramu zadań systemowych w utrzymaniu serweraHarmonogram zadań systemowych określa, kiedy serwer ma automatycznie uruchomić wskazaną operację. Zadaniem może być między innymi wykonanie kopii zapasowej, usunięcie plików tymczasowych, sprawdzenie dostępności usługi, zebranie informacji diagnostycznych albo uruchomienie skryptu administracyjnego. Zaplanowanie takiej czynności pozwala wykonywać ją według powtarzalnych reguł, bez ręcznego logowania się do systemu przy każdym cyklu utrzymaniowym. Sam harmonogram nie jest jeszcze gwarancją poprawnego wykonania zadania. System musi mieć dostęp do programu lub skryptu, właściwe uprawnienia, wymagane zasoby oraz poprawnie określone warunki uruchomienia. Istotne są także działania po zakończeniu operacji: zapis kodu wyjścia, utworzenie wpisu w dzienniku, wysłanie powiadomienia albo ponowienie próby po błędzie. W praktyce ocenia się więc zarówno definicję zadania, jak i jego rzeczywisty przebieg. Elementy definicji zadania i warunki jego startuTypowa definicja zawiera nazwę operacji, polecenie do uruchomienia, argumenty, katalog roboczy, konto wykonawcze oraz harmonogram czasowy. Reguła może określać konkretną godzinę, cykl godzinowy, dni tygodnia, dzień miesiąca lub reakcję na zdarzenie systemowe. W środowisku Windows rolę tę pełni Task Scheduler, natomiast w systemach Unix i Linux podobne zadania mogą być obsługiwane przez cron albo jednostki timer systemd. Są to odrębne mechanizmy, dlatego ich składnia i sposób rejestrowania wyników nie są zamienne. Oprócz czasu można zdefiniować warunki dodatkowe. Zadanie może wymagać uruchomienia systemu na zasilaniu sieciowym, aktywnego połączenia sieciowego, bezczynności procesora albo dostępności określonego pliku. W systemie Linux wpis cron jest zwykle opisany pięcioma polami czasu: minutą, godziną, dniem miesiąca, miesiącem i dniem tygodnia. Jednostka timer systemd korzysta z własnych parametrów, takich jak OnCalendar, OnBootSec lub OnUnitActiveSec. W Windows konfiguracja jest przechowywana przez usługę Harmonogram zadań i może obejmować wyzwalacze, akcje oraz ustawienia ponawiania. Kontrola skutków i diagnostyka niewykonanych operacjiWeryfikacja harmonogramu powinna obejmować historię uruchomień, czas rozpoczęcia, czas zakończenia i rezultat procesu. Kod wyjścia równy zero często oznacza poprawne zakończenie programu, ale jego interpretacja zależy od konkretnego narzędzia. Kod niezerowy może wskazywać na brak pliku, błąd uprawnień, niedostępny zasób, przekroczony limit czasu lub nieudaną komunikację z inną usługą. Sam fakt, że proces został uruchomiony, nie dowodzi więc, że operacja zakończyła się prawidłowo. W Windows informacje o wykonaniu można sprawdzać w historii zadania oraz w Podglądzie zdarzeń, zwłaszcza w dzienniku Microsoft-Windows-TaskScheduler/Operational. W systemach korzystających z systemd przydatne są między innymi status jednostki oraz dziennik powiązanej usługi, na przykład za pomocą polecenia journalctl. Dla zadań cron należy sprawdzić konfigurację użytkownika lub systemu oraz logi usługi cron albo crond, zależnie od dystrybucji. Diagnostyka powinna również uwzględniać strefę czasową, zmianę czasu letniego i zimowego, różnice między środowiskiem interaktywnym a uruchomieniem w tle oraz dostępność zmiennych środowiskowych. Bezpieczne projektowanie cykli utrzymaniowych serweraZadanie utrzymaniowe powinno być możliwie jednoznaczne i odporne na wielokrotne uruchomienie. Jeżeli skrypt usuwa pliki, należy ograniczyć operację do dokładnie określonego katalogu i sprawdzić warunki wejściowe przed wykonaniem usuwania. Jeżeli generuje kopię zapasową, trzeba zweryfikować nie tylko utworzenie pliku, lecz także jego rozmiar, integralność i możliwość odtworzenia. Długie operacje powinny mieć limit czasu, a kolejne uruchomienie nie powinno rozpoczynać się równolegle, gdy poprzedni przebieg nadal pracuje. Uprawnienia konta wykonującego zadanie powinny odpowiadać zakresowi operacji. Przyznanie pełnych praw administracyjnych skryptowi, który potrzebuje dostępu tylko do jednego katalogu, zwiększa skutki ewentualnego błędu. Warto także zapisywać rozpoczęcie i zakończenie pracy, użyte argumenty, kod wyniku oraz komunikaty błędów. Po zmianie konfiguracji należy wykonać kontrolowany test, sprawdzić logi i potwierdzić, że zadanie uruchamia właściwy program o właściwej porze. Dopiero taka kontrola potwierdza, że zaplanowany cykl rzeczywiście realizuje zamierzoną czynność utrzymaniową. |