Zadania Cron
Jak skonfigurować zadania cron w DirectAdmin — okresowe skrypty PHP, polecenia Linux. Składnia, najczęstsze przypadki (WP-Cron, backupy, czyszczenie cache), debugowanie.
Cron to standardowy Linux scheduler — uruchamia komendy w określonym czasie. Używany dla: codziennych backupów, czyszczenia cache, indeksowania, wysyłki newsletterów, WordPress crons (WP-Cron).
Co zyskasz
- Utworzysz zadanie cron w DirectAdmin.
- Zrozumiesz składnię crontab (
* * * * *). - Skonfigurujesz typowe zadania (WP-Cron, backup, czyszczenie).
- Zdiagnozujesz cron, który nie działa.
Wymagania wstępne
- Konto DA z dostępem do Zadań Cron.
Krok 1: Otwórz Zadania Cron
Funkcje zaawansowane → Zadania Cron. URL:
/evo/user/cronjobs.
Tabela z istniejącymi cronami i przycisk + Dodaj cron job.
Krok 2: Składnia crontab
Cron używa 5 pól oddzielonych spacjami:
* * * * * command │ │ │ │ │ │ │ │ │ └── Dzień tygodnia (0-7, 0=Niedziela, 7=Niedziela) │ │ │ └──── Miesiąc (1-12) │ │ └────── Dzień miesiąca (1-31) │ └──────── Godzina (0-23) └────────── Minuta (0-59)Przykłady:
Cron Znaczenie * * * * *Co minutę 0 * * * *Co godzinę (o pełnej) */15 * * * *Co 15 minut 0 2 * * *Codziennie o 2:00 0 0 * * 0Co niedzielę o północy 30 3 1 * *1. dnia miesiąca o 3:30 0 9-17 * * 1-5Co godzinę 9-17, pn-pt
Krok 3: Utwórz cron
W DA: Dodaj cron job → formularz:
- Minuta (0-59 lub
*lub*/X)- Godzina (0-23)
- Dzień miesiąca (1-31)
- Miesiąc (1-12)
- Dzień tygodnia (0-7)
- Komenda — co uruchomić
DA pokazuje dropdowny zamiast pisać surowy crontab — prościej.


Typowe zadania
WordPress Cron (alternatywa do WP-Cron)
WordPress ma własny cron (wp-cron.php), który uruchamia się przy każdym requeście. Lepiej zastąpić real cron:
# Wyłącz w wp-config.php:
define('DISABLE_WP_CRON', true);
W DA cron:
*/15 * * * * /usr/bin/curl -s https://mojafirma.pl/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Albo CLI:
*/15 * * * * /usr/local/bin/php /home/host36592/domains/mojafirma.pl/public_html/wp-cron.php > /dev/null 2>&1
Co 15 min uruchamia WP-Cron — szybsze niż domyślny mechanizm.
Codzienny backup
# 3:00 nocą — backup bazy
0 3 * * * /usr/bin/mysqldump -u host36592_wp -pHASLO host36592_wp | gzip > /home/host36592/backups/db-$(date +%Y%m%d).sql.gz
Czyszczenie cache co tydzień
0 4 * * 0 rm -rf /home/host36592/domains/mojafirma.pl/public_html/wp-content/cache/*
Newsletter dziennie
0 9 * * * /usr/bin/php /home/host36592/domains/mojafirma.pl/public_html/scripts/send-newsletter.php
Sprawdzanie disk space alert
0 */6 * * * df -h | mail -s "Disk usage" [email protected]
Output i logi cron
Domyślnie cron wysyła stdout/stderr na e-mail Twojego konta. Dodaj:
# Zaloguj output do pliku
0 3 * * * /script.sh > /home/host36592/cron.log 2>&1
# Ignoruj output (cisza)
0 3 * * * /script.sh > /dev/null 2>&1
# Tylko błędy do mail
0 3 * * * /script.sh > /dev/null
Najczęstsze problemy
1. „Cron nie uruchamia się"
- Sprawdź syntax (czasem dropdown w DA generuje błędny crontab)
- Sprawdź ścieżki absolutne (cron nie ma
$PATHjak shell) - Sprawdź uprawnienia executable (
chmod +x /script.sh)
2. „PHP w cronie inną wersją niż strona"
W IQHost cron używa domyślnego CLI PHP. Jeśli strona używa PHP 8.2, a cron 7.4 — błędy.
Rozwiązanie: explicit path do PHP:
/usr/local/php82/bin/php /script.php
Sprawdź dostępne wersje SSH-em: ls /usr/local/php*/bin/.
3. „Cron uruchamia, ale błędy nie widać"
Dodaj log:
0 3 * * * /script.sh > /home/host36592/cron.log 2>&1
Plus sprawdź mail (cron wysyła błędy na adres konta).
4. „Mam za mały interval (* * * * *)"
W IQHost min. interval cron = 1 minuta. Częstsze (co 30s) trzeba w aplikacji (event loop).
5. „Skrypt z cronu działa wolno"
Cron ma własny limit:
- max execution time (zwykle 0 = unlimited dla CLI)
- memory limit (osobny od web)
Sprawdź log błędów.
6. „WP-Cron nadal się uruchamia mimo DISABLE_WP_CRON"
- Cache OPcache → restart PHP (czeka kilka minut po edycji
wp-config.php) - Sprawdź czy plik faktycznie zapisany
- Sprawdź czy
define()jest przed komentarzemStop editing
7. „Cron pisze maile spamowo — wyłącz"
Default: cron wysyła output na maila. Aby wyłączyć — przekieruj output:
0 3 * * * /script.sh > /dev/null 2>&1
Lub na początku crontab:
MAILTO=""
Słowniczek
- Crontab — plik z definicją cronów (per user).
- Cron daemon — serwerowy proces
cronduruchamiający zadania. - WP-Cron — wewnętrzny scheduler WordPress (uruchamia się przy każdym requeście).
- Real cron — system cron (Linux) — alternatywa dla WP-Cron, lepsza.
Related
Feedback
Czy ten artykuł pomógł?


