Skip to content

Harmonogramy zadań

Automatyzuj rutynowe zadania administracyjne przez system harmonogramów SGS Hub.

Czym są harmonogramy?

Harmonogramy (Schedules) to zadania wykonywane automatycznie w określonych momentach czasu. Nie musisz być online aby zadanie się wykonało.

Przykłady użycia:

  • 🔄 Automatyczny restart serwera co 6 godzin
  • 💾 Backup co noc o 4:00 AM
  • 📢 Broadcast ostrzeżenia przed restartem
  • 🧹 Czyszczenie starych logów co tydzień
  • 🔗 Sekwencja zadań: backup → broadcast → restart

Korzyści:

  • Oszczędność czasu - nie musisz pamiętać o rutynowych zadaniach
  • Konsekwencja - zadania wykonują się regularnie
  • Optymalizacja - restartuj serwer w godzinach niskiego ruchu
  • Bezpieczeństwo - regularne backupy chronią dane

Cron expressions

SGS Hub używa formatu cron do określania czasu wykonania.

Format cron

* * * * *
│ │ │ │ │
│ │ │ │ └─── Dzień tygodnia (0-7, 0 i 7 = niedziela)
│ │ │ └───── Miesiąc (1-12)
│ │ └─────── Dzień miesiąca (1-31)
│ └───────── Godzina (0-23)
└─────────── Minuta (0-59)

Podstawowe przykłady

CronOpisWykonanie
0 4 * * *Codziennie o 4:00 AM04:00 każdego dnia
*/30 * * * *Co 30 minut00:00, 00:30, 01:00, 01:30...
0 */6 * * *Co 6 godzin00:00, 06:00, 12:00, 18:00
0 3 * * 0Każdą niedzielę o 3:00 AMNiedziela 03:00
0 0 1 * *1. dnia miesiąca o północy1. dzień każdego miesiąca
*/15 8-17 * * 1-5Co 15 min, 8-17, pn-ptGodziny pracy

Zaawansowane przykłady

Co 2 godziny w dni powszednie:

0 */2 * * 1-5

O 3:00 i 15:00 każdego dnia:

0 3,15 * * *

Co minutę (testing only!):

* * * * *

Pierwsze 10 minut każdej godziny:

0-9 * * * *

Cron Builder

SGS Hub ma wbudowany Cron Builder - wizualny kreator cron expressions. Nie musisz pamiętać składni!

Podczas tworzenia harmonogramu kliknij Cron Builder aby użyć GUI.

Testowanie cron expressions

Zanim utworzysz harmonogram, przetestuj:

  1. Użyj crontab.guru (zewnętrzna strona)
  2. Wklej expression (np. 0 */6 * * *)
  3. Zobacz opis: "At minute 0 past every 6th hour"
  4. Sprawdź następne wykonania:
    Next: 2025-10-26 12:00:00
    Then: 2025-10-26 18:00:00
    Then: 2025-10-27 00:00:00

Tworzenie harmonogramu

Podstawowy harmonogram

Krok 1: Otwórz zakładkę Schedules

  1. Panel serwera → zakładka Schedules
  2. Kliknij Create Schedule

Krok 2: Konfiguracja podstawowa

Nazwa:

  • Opisowa nazwa (np. "Daily restart at 4 AM")
  • Pomaga zidentyfikować cel harmonogramu

Action (Akcja): Wybierz co ma się wykonać:

  • RESTART - Zrestartuj serwer
  • STOP - Zatrzymaj serwer
  • START - Uruchom serwer (jeśli zatrzymany)
  • BACKUP - Utwórz backup (Thin lub Full)
  • BROADCAST - Wyślij wiadomość do graczy
  • CUSTOM - Własna komenda (zaawansowane)

Krok 3: Cron expression

Opcja A: Przez Cron Builder (łatwiejsze)

  1. Kliknij Cron Builder
  2. Użyj dropdown'ów:
    • Minute: 0
    • Hour: 4
    • Day: * (każdy)
    • Month: * (każdy)
    • Weekday: * (każdy)
  3. Preview: "At 04:00 every day"
  4. Kliknij Apply

Opcja B: Ręcznie Wpisz expression: 0 4 * * *

Krok 4: Dodatkowe opcje

Enabled (Włączony):

  • ON - Harmonogram aktywny
  • OFF - Harmonogram paused (nie wykonuje się)

Krok 5: Zapisz

Kliknij Create Schedule. Harmonogram pojawi się na liście.

Harmonogram z parametrami

Niektóre akcje wymagają dodatkowych parametrów.

BACKUP - wybierz typ:

  • Type: Thin / Full
  • Name: Nazwa backupu (opcjonalnie)

BROADCAST - treść wiadomości:

  • Message: Tekst do wysłania
  • Przykład: "Serwer zrestartuje się za 5 minut. Zapisz postępy!"

CUSTOM - komenda:

  • Command: Dowolna komenda shell
  • Przykład: saveworld (zapisz stan gry)
  • Przykład: destroywilddinos (respawn dzikich dino)

Akcje harmonogramów

RESTART (Restart serwera)

Najpopularniejsza akcja. Regularne restarty poprawiają wydajność (clear memory leaks).

Kiedy używać:

  • Co 6-12 godzin dla serwerów ARK (memory leaks)
  • Co 24 godziny dla serwerów FiveM
  • Po aktualizacjach modów (scheduled overnight)

Przykład:

Nazwa: "Auto-restart co 6h"
Akcja: RESTART
Cron: 0 */6 * * *

Co się dzieje:

  1. Harmonogram wysyła komendę restart do serwera
  2. Serwer wykonuje graceful shutdown (zapisuje dane)
  3. Po 30-60s serwer automatycznie startuje ponownie
  4. Czas trwania: ~2-5 minut total

Ostrzeż graczy przed restartem

Restart bez ostrzeżenia frustruje graczy. Zawsze dodaj BROADCAST 5-10 minut przed restartem!

Zobacz Task Sequences aby dowiedzieć się jak.

BACKUP (Tworzenie kopii zapasowej)

Automatyczne backupy zapewniają że zawsze masz recent save do przywrócenia.

Zalecane harmonogramy:

  • Thin Backup co 6 godzin: 0 */6 * * *
  • Full Backup raz w tygodniu: 0 3 * * 0 (niedziela 3 AM)

Przykład:

Nazwa: "Thin backup co 6h"
Akcja: BACKUP
Typ: Thin
Cron: 0 */6 * * *

Retention: SGS Hub automatycznie usuwa stare backupy według Retention Policy.

BROADCAST (Komunikat do graczy)

Wyślij wiadomość do wszystkich graczy online.

Kiedy używać:

  • Ostrzeżenie przed restartem
  • Informacje o evencie
  • Przypomnienie o zasadach
  • Announcements o aktualizacjach

Przykład:

Nazwa: "Ostrzeżenie 5 min przed restartem"
Akcja: BROADCAST
Message: "⚠️ Serwer zrestartuje się za 5 minut! Zapisz postępy!"
Cron: 55 3,9,15,21 * * *  (5 min przed restartem)

Formatowanie wiadomości:

  • ARK: Podstawowy tekst, bez formatowania
  • FiveM: Możesz użyć kolorów (jeśli resource obsługuje)

START / STOP

START - Uruchom serwer jeśli jest zatrzymany STOP - Zatrzymaj serwer

Use cases:

  • START o 8:00 AM - Włącz serwer rano przed szczytem graczy
  • STOP o 3:00 AM - Wyłącz na noc dla oszczędności zasobów
  • STOP przed maintenance - Automatycznie zatrzymaj przed scheduled maintenance

Przykład (serwer tylko w dzień):

Schedule 1:
  Nazwa: "Start serwera o 8 AM"
  Akcja: START
  Cron: 0 8 * * *

Schedule 2:
  Nazwa: "Stop serwera o 2 AM"
  Akcja: STOP
  Cron: 0 2 * * *

CUSTOM (Własna komenda)

Zaawansowana opcja dla custom commands.

Przykłady:

Save world co godzinę:

Akcja: CUSTOM
Command: saveworld
Cron: 0 * * * *

Respawn dzikich dino co 3 dni:

Akcja: CUSTOM
Command: destroywilddinos
Cron: 0 4 */3 * *

Czyszczenie starych logów:

Akcja: CUSTOM
Command: find /ShooterGame/Saved/Logs -type f -mtime +7 -delete
Cron: 0 3 * * 0

Ostrożnie z CUSTOM commands

CUSTOM commands wykonują się z uprawnieniami serwera. Błędna komenda może uszkodzić serwer!

Testuj komendy ręcznie w Console przed dodaniem do harmonogramu.

Task Sequences (sekwencje zadań)

Task Sequences pozwalają wykonać wiele akcji po kolei w jednym harmonogramie.

Dlaczego sequences?

Problem: Chcesz zrestartować serwer, ale najpierw:

  1. Ostrzeż graczy (5 min wcześniej)
  2. Zrób backup (2 min przed)
  3. Ostrzeż ponownie (1 min przed)
  4. Restart

Rozwiązanie: Sekwencja 4 zadań w jednym harmonogramie!

Tworzenie sekwencji

Krok 1: Utwórz harmonogram

  1. Schedules → Create Schedule
  2. Wybierz Task Sequence zamiast pojedynczej akcji

Krok 2: Dodaj zadania

Kliknij Add Task dla każdego kroku:

Task 1: Broadcast ostrzeżenie

  • Akcja: BROADCAST
  • Message: "⏰ Restart za 5 minut!"
  • Delay: 0 minut (wykonaj od razu)

Task 2: Broadcast przypomnienie

  • Akcja: BROADCAST
  • Message: "⚠️ Restart za 2 minuty! Zapisz się!"
  • Delay: 3 minuty (3 min po Task 1)

Task 3: Backup

  • Akcja: BACKUP
  • Type: Thin
  • Delay: 2 minuty (2 min po Task 2)

Task 4: Ostatnie ostrzeżenie

  • Akcja: BROADCAST
  • Message: "🚨 Restart za 30 sekund!"
  • Delay: 1 minuta (1 min po Task 3)

Task 5: Restart

  • Akcja: RESTART
  • Delay: 30 sekund (30s po Task 4)

Krok 3: Ustaw cron

Cron: 0 4,10,16,22 * * *  (4 AM, 10 AM, 4 PM, 10 PM)

Krok 4: Zapisz

Sekwencja jest gotowa!

Timeline sekwencji

Przykład wykonania o 4:00 AM:

04:00:00 - Task 1: Broadcast "Restart za 5 minut"
04:03:00 - Task 2: Broadcast "Restart za 2 minuty"
04:05:00 - Task 3: Backup (Thin) rozpoczyna się
04:06:30 - Task 3: Backup zakończony (trwał 1.5 min)
04:06:30 - Task 4: Broadcast "Restart za 30 sekund"
04:07:00 - Task 5: Restart serwera
04:09:30 - Serwer ponownie online

Total czas: ~9.5 minut od początku do końca

Best practices dla sequences

Do's ✅:

  • ✅ Ostrzegaj graczy minimum 5 minut przed restartem
  • ✅ Dodaj backup przed restartem (Thin = 1-3 min)
  • ✅ Używaj multiple broadcasts (5 min, 2 min, 30s)
  • ✅ Testuj sequence ręcznie przed ustawieniem cron
  • ✅ Loguj akcje (SGS Hub zapisuje logi execution)

Don'ts ❌:

  • ❌ Nie rób restart bez ostrzeżenia
  • ❌ Nie ustawiaj delays za krótkich (gracze potrzebują czasu)
  • ❌ Nie dodawaj za dużo zadań (max 5-7)
  • ❌ Nie używaj CUSTOM commands w sequences (trudne do debug)

Zarządzanie harmonogramami

Lista harmonogramów

W zakładce Schedules zobaczysz wszystkie harmonogramy:

Kolumny:

  • Nazwa - Nazwa harmonogramu
  • Akcja - RESTART, BACKUP, etc.
  • Cron - Expression (np. 0 4 * * *)
  • Następne wykonanie - Kiedy się wykona (np. "Today at 16:00")
  • Ostatnie wykonanie - Kiedy ostatnio się wykonał
  • Status - Enabled / Disabled
  • Akcje - Edit, Delete, Run Now

Sortowanie:

  • Według następnego wykonania (default)
  • Według nazwy
  • Według typu akcji

Edycja harmonogramu

  1. Kliknij Edit (✏️) obok harmonogramu
  2. Zmień dowolne ustawienia (nazwa, cron, akcja)
  3. Zapisz
  4. Zmiany wejdą w życie natychmiast

Przykład edycji: Zmiana restartu z co 6h na co 12h:

Przed: 0 */6 * * *
Po: 0 */12 * * *

Włączanie/wyłączanie

Toggle Enabled:

  1. Kliknij przełącznik ON/OFF obok harmonogramu
  2. OFF = Harmonogram paused (nie wykonuje się)
  3. ON = Harmonogram aktywny

Kiedy używać:

  • Wyłącz restarty podczas eventu (nie chcesz przerywać)
  • Wyłącz backupy podczas migracji
  • Tymczasowo disable problematycznych schedules

Ręczne wykonanie

Run Now - Wykonaj harmonogram natychmiast bez czekania na cron.

Jak użyć:

  1. Kliknij Run Now (▶️) obok harmonogramu
  2. Harmonogram wykonuje się od razu
  3. Następne auto-execution zgodnie z cron

Use cases:

  • Testowanie nowego harmonogramu
  • Natychmiastowy restart po zmianach
  • Backup przed major changes

Usuwanie harmonogramu

  1. Kliknij Delete (🗑️)
  2. Potwierdź usunięcie
  3. Harmonogram zostaje permanentnie usunięty

Disable zamiast Delete

Jeśli nie jesteś pewny czy harmonogram jeszcze będzie potrzebny, disable zamiast delete. Możesz go później ponownie włączyć.

Logi wykonań

Historia wykonań

Schedules → History (lub kliknij harmonogram → View History)

Zobaczysz historię wszystkich wykonań:

Kolumny:

  • Data/czas - Kiedy się wykonał
  • Harmonogram - Nazwa
  • Akcja - Co wykonano
  • Status - Success / Failed
  • Czas trwania - Ile zajęło (np. 2m 34s)
  • Logi - Link do szczegółów

Filtrowanie:

  • Ostatnie 24h / 7 dni / 30 dni
  • Tylko Failed
  • Tylko Success
  • Według harmonogramu

Szczegóły wykonania

Kliknij execution aby zobaczyć szczegóły:

Przykład (RESTART):

Execution ID: exec_abc123xyz
Schedule: "Daily restart at 4 AM"
Started: 2025-10-26 04:00:00
Finished: 2025-10-26 04:02:47
Duration: 2m 47s
Status: Success

Timeline:
04:00:00 - Restart command sent to server
04:00:15 - Server status: STOPPING
04:00:42 - Server stopped
04:00:43 - Server status: STARTING
04:02:35 - Server loaded mods (15 mods)
04:02:47 - Server status: RUNNING
04:02:47 - Execution completed successfully

Przykład (Task Sequence):

Execution ID: exec_xyz789abc
Schedule: "Restart with warnings"
Started: 2025-10-26 10:00:00
Finished: 2025-10-26 10:09:30
Duration: 9m 30s
Status: Success

Tasks:
✓ Task 1: BROADCAST "Restart za 5 min" (10:00:00)
✓ Task 2: BROADCAST "Restart za 2 min" (10:03:00)
✓ Task 3: BACKUP Thin (10:05:00 - 10:06:30, 1m 30s)
✓ Task 4: BROADCAST "Restart za 30s" (10:06:30)
✓ Task 5: RESTART (10:07:00 - 10:09:30, 2m 30s)

Failed executions

Jeśli execution failed:

Sprawdź logi:

Execution ID: exec_fail123
Status: Failed
Error: Server did not respond to restart command

Timeline:
04:00:00 - Restart command sent
04:00:15 - Waiting for server response...
04:01:15 - Timeout: Server did not respond (60s)
04:01:15 - Execution failed

Popularne błędy:

"Server did not respond"

  • Serwer był frozen lub crashnął
  • Rozwiązanie: Sprawdź status serwera, może wymaga force restart

"Backup failed: Disk full"

  • Brak miejsca na dysku
  • Rozwiązanie: Usuń stare backupy

"Custom command failed: Permission denied"

  • Komenda wymaga uprawnień których serwer nie ma
  • Rozwiązanie: Sprawdź czy komenda jest poprawna

Przykładowe konfiguracje

Konfiguracja #1: Serwer casualowy (małe obciążenie)

Schedule 1: "Daily restart"
  Akcja: RESTART
  Cron: 0 4 * * *  (Raz dziennie o 4 AM)

Schedule 2: "Daily backup"
  Akcja: BACKUP (Thin)
  Cron: 30 3 * * *  (30 min przed restartem)

Schedule 3: "Weekly full backup"
  Akcja: BACKUP (Full)
  Cron: 0 2 * * 0  (Niedziela 2 AM)

Konfiguracja #2: Serwer intensywny (wysokie obciążenie)

Schedule 1: "Restart co 6h z ostrzeżeniami"
  Typ: Task Sequence
  Cron: 0 */6 * * *
  Tasks:
    1. BROADCAST "Restart za 5 min" (delay: 0)
    2. BROADCAST "Restart za 2 min" (delay: 3 min)
    3. BACKUP Thin (delay: 2 min)
    4. BROADCAST "Restart za 30s" (delay: 1 min)
    5. RESTART (delay: 30s)

Schedule 2: "Backup co 3h"
  Akcja: BACKUP (Thin)
  Cron: 0 */3 * * *

Schedule 3: "Weekly full backup"
  Akcja: BACKUP (Full)
  Cron: 0 3 * * 0

Schedule 4: "Clean old logs"
  Akcja: CUSTOM
  Command: find /ShooterGame/Saved/Logs -mtime +7 -delete
  Cron: 0 5 * * 0  (Niedziela 5 AM)

Konfiguracja #3: Serwer event-based

Schedule 1: "Start o 18:00 (prime time)"
  Akcja: START
  Cron: 0 18 * * *

Schedule 2: "Backup + Stop o 2:00 AM"
  Typ: Task Sequence
  Cron: 0 2 * * *
  Tasks:
    1. BROADCAST "Serwer wyłączy się za 5 min" (delay: 0)
    2. BACKUP Thin (delay: 3 min)
    3. STOP (delay: 2 min)

Schedule 3: "Weekend full backup"
  Akcja: BACKUP (Full)
  Cron: 0 3 * * 6  (Sobota 3 AM, gdy serwer offline)

Troubleshooting

Harmonogram nie wykonuje się

Sprawdź:

  1. Czy Enabled = ON
  2. Czy cron expression jest poprawny (użyj crontab.guru)
  3. Czy "Next execution" pokazuje właściwy czas
  4. Czy serwer jest w odpowiednim stanie (np. START wymaga serwera STOPPED)

Logi: Schedules → History → Sprawdź czy są failed executions

Restart się nie powiódł

Problem: Schedule RESTART pokazuje Failed

Przyczyny:

  • Serwer nie odpowiedział w czasie (timeout 60s)
  • Serwer był już w trakcie restartu
  • Serwer crashnął przed graceful shutdown

Rozwiązanie:

  • Sprawdź Console podczas następnego execution
  • Zwiększ timeout (skontaktuj się z supportem)
  • Rozważ STOP + wait + START zamiast RESTART

Task sequence zawiesza się

Problem: Sequence nie kończy się, zostaje na jednym tasku

Przyczyny:

  • Task wymaga więcej czasu niż delay następnego taska
  • BACKUP trwa 5 min, ale następny task ma delay 2 min

Rozwiązanie:

  • Zwiększ delays między taskami
  • BACKUP może zająć 1-5 min, ustaw delay 7 min dla pewności
  • Nie ustawiaj delays za krótkich

Best practices

Do's ✅

  • Używaj descriptive names - "Daily restart 4AM" lepsze niż "Schedule 1"
  • Testuj z Run Now - Przed ustawieniem cron, przetestuj ręcznie
  • Monitoruj History - Sprawdzaj czy harmonogramy działają poprawnie
  • Backup przed restartem - W sequences, zawsze backup przed restart
  • Multiple warnings - Ostrzegaj graczy 5 min, 2 min, 30s przed restartem
  • Off-peak hours - Restartuj w godzinach niskiego ruchu (3-6 AM)
  • Dokumentuj - W opisie harmonogramu napisz dlaczego istnieje

Don'ts ❌

  • Nie rób restart bez warning - Gracze będą frustrowani
  • Nie używaj * * * * * (co minutę) - Tylko do testów, nie na production
  • Nie twórz za dużo harmonogramów - Max 5-10, więcej = trudne do zarządzania
  • Nie używaj CUSTOM bez testowania - Może zniszczyć serwer
  • Nie nakładaj harmonogramów - Restart o 4:00 i backup o 4:05 = konflikt
  • Nie ignoruj failed executions - Sprawdzaj dlaczego failują

Następne kroki

Dokumentacja SGS Hub