ZARZąDZANIE HOSTINGIEM (DIRECTADMIN) • 5 MIN READ

Zadania Cron

Jak skonfigurować zadania cron w DirectAdmin — okresowe skrypty PHP, polecenia Linux. Składnia, najczęstsze przypadki (WP-Cron, backupy, czyszczenie cache), debugowanie.

Zespół IQHost 14 maj 2026 5m read
#DirectAdmin #IQHost #hosting

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.

Strona Zadania Cron w DA

Tabela z istniejącymi cronami i przycisk + Dodaj cron job. Pełen widok strony Zadania Cron — formularz Dodaj cron

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 * * 0 Co niedzielę o północy
30 3 1 * * 1. dnia miesiąca o 3:30
0 9-17 * * 1-5 Co godzinę 9-17, pn-pt

Krok 3: Utwórz cron

W DA: Dodaj cron job → formularz:

Formularz Dodaj cron job — pola minuta/godzina/dzień + komenda

  • 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.

Formularz Cron wypełniony — /home/host36592/test.sh

Cron utworzony — wpis widoczny w tabeli

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 $PATH jak 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 komentarzem Stop 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 crond uruchamiają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ł?

Potwierdź