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
| Cron | Opis | Wykonanie |
|---|---|---|
0 4 * * * | Codziennie o 4:00 AM | 04:00 każdego dnia |
*/30 * * * * | Co 30 minut | 00:00, 00:30, 01:00, 01:30... |
0 */6 * * * | Co 6 godzin | 00:00, 06:00, 12:00, 18:00 |
0 3 * * 0 | Każdą niedzielę o 3:00 AM | Niedziela 03:00 |
0 0 1 * * | 1. dnia miesiąca o północy | 1. dzień każdego miesiąca |
*/15 8-17 * * 1-5 | Co 15 min, 8-17, pn-pt | Godziny pracy |
Zaawansowane przykłady
Co 2 godziny w dni powszednie:
0 */2 * * 1-5O 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:
- Użyj crontab.guru (zewnętrzna strona)
- Wklej expression (np.
0 */6 * * *) - Zobacz opis: "At minute 0 past every 6th hour"
- 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
- Panel serwera → zakładka Schedules
- 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)
- Kliknij Cron Builder
- Użyj dropdown'ów:
- Minute:
0 - Hour:
4 - Day:
*(każdy) - Month:
*(każdy) - Weekday:
*(każdy)
- Minute:
- Preview: "At 04:00 every day"
- 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:
- Harmonogram wysyła komendę restart do serwera
- Serwer wykonuje graceful shutdown (zapisuje dane)
- Po 30-60s serwer automatycznie startuje ponownie
- 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 * * 0Ostroż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:
- Ostrzeż graczy (5 min wcześniej)
- Zrób backup (2 min przed)
- Ostrzeż ponownie (1 min przed)
- Restart
Rozwiązanie: Sekwencja 4 zadań w jednym harmonogramie!
Tworzenie sekwencji
Krok 1: Utwórz harmonogram
- Schedules → Create Schedule
- 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 onlineTotal 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
- Kliknij Edit (✏️) obok harmonogramu
- Zmień dowolne ustawienia (nazwa, cron, akcja)
- Zapisz
- 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:
- Kliknij przełącznik ON/OFF obok harmonogramu
- OFF = Harmonogram paused (nie wykonuje się)
- 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ć:
- Kliknij Run Now (▶️) obok harmonogramu
- Harmonogram wykonuje się od razu
- Następne auto-execution zgodnie z cron
Use cases:
- Testowanie nowego harmonogramu
- Natychmiastowy restart po zmianach
- Backup przed major changes
Usuwanie harmonogramu
- Kliknij Delete (🗑️)
- Potwierdź usunięcie
- 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 successfullyPrzykł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 failedPopularne 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ź:
- Czy Enabled = ON
- Czy cron expression jest poprawny (użyj crontab.guru)
- Czy "Next execution" pokazuje właściwy czas
- 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
- Troubleshooting - Rozwiązywanie problemów
- Advanced Configuration - Zaawansowana konfiguracja serwera
- Community Features - Eventy i automatyzacja społeczności
