Technologia

Cron job - co to jest i do czego służy?

4 min czytania

Kopie zapasowe bazy danych, odświeżanie mapy strony, czyszczenie cache, wysyłka newslettera – przy prowadzeniu strony internetowej jest sporo zadań, które trzeba powtarzać regularnie, najlepiej o stałych porach. Można pilnować ich ręcznie… tylko po co, skoro serwer może zrobić to sam? Do tego służą cron joby. Poniżej wyjaśnimy, czym są i jak działają.

Co to jest cron job?

Cron job to zadanie, które system wykonuje automatycznie według ustalonego wcześniej harmonogramu – na przykład co 15 minut, codziennie o 3:00 w nocy albo pierwszego dnia każdego miesiąca. Z reguły chodzi o uruchomienie jakiegoś skryptu lub pojedynczego polecenia; o to, żeby stało się to o czasie, dba już cron.

Od razu warto tu rozróżnić trzy pojęcia:

  • cron to program działający w tle w systemach uniksowych, czyli m.in. w Linuksie i macOS, który pilnuje harmonogramu i uruchamia zadania;
  • crontab file (od cron table) to plik z listą zadań i harmonogramem ich wykonywania; każdy użytkownik systemu może mieć własny;
  • zaś cron job to pojedyncze zadanie, czyli jeden wiersz w crontabie.

Cron jako narzędzie pojawił się w systemach Unix mniej więcej w tym samym okresie, co pierwsze komputery osobiste, jeszcze w połowie lat 70. Swoje odpowiedniki ma też w innych środowiskach: w Windowsie podobną rolę pełni Harmonogram zadań, a np. w WordPressie – WP-Cron, o którym jeszcze powiemy.

Jak działa cron?

Cron działa jako tzw. demon, czyli proces, który cały czas pracuje w tle systemu. Co minutę „budzi się”, przegląda crontaby i sprawdza, czy któreś z zapisanych w nich zadań nie powinno właśnie zostać uruchomione. Jeśli tak – wykonuje je i „zasypia” na kolejną minutę. 

W praktyce wystarczy więc raz zapisać zadanie w crontabie, a cron będzie je wykonywał, dopóki go stamtąd nie usuniemy.

Jak zapisać harmonogram, czyli składnia crontab file

Każdy wiersz w crontabie składa się z pięciu pól określających czas wykonania zadania oraz z polecenia, które ma zostać uruchomione. Dla przykładu wpis:

0 3 * * * /home/uzytkownik/backup.sh

oznacza „uruchamiaj skrypt backup.sh codziennie o 3:00”. Kolejne pola to:

  • minuta (0-59);
  • godzina (0-23);
  • dzień miesiąca (1-31);
  • miesiąc (1-12);
  • dzień tygodnia (0-7, przy czym zarówno 0, jak i 7 oznaczają niedzielę).

Wartości można też łączyć za pomocą znaków specjalnych:

  • gwiazdka (*) – dowolna wartość, czyli „każda minuta”, „każdy dzień” itd.;
  • przecinek (,) – lista wartości, np. 1,15 w polu dnia miesiąca to 1. i 15. dzień miesiąca;
  • myślnik (-) – zakres, np. 1-5 w polu dnia tygodnia to dni robocze;
  • ukośnik (/) – krok, np. */15 w polu minut oznaczałoby „co 15 minut”.

Wpis 0 9 * * 1-5 uruchomi więc zadanie o godzinie 9:00 w każdy dzień roboczy. W prostszych przypadkach można też korzystać ze skrótów, takich jak @daily (raz na dobę, o północy), @weekly, @monthly czy @reboot (przy każdym starcie systemu). A jeśli nie masz pewności, czy dobrze zapisałeś harmonogram zadania, od tego jest darmowe narzędzie crontab.guru, w którym możesz przetłumaczyć wyrażenia crona na angielski. 

Cron job

Zdj 1. Składania, przy pomocy której zapisujemy cron jobs, wbrew pozorom jest dosyć prosta – trzeba znać tylko kilka reguł.

Źródło: crontab.guru

Do czego służy cron job? Najczęstsze zastosowania

Najprościej byłoby odpowiedzieć, że… do wszystkiego, co trzeba robić regularnie i co nie wymaga udziału człowieka. Cron jobs potrafią bardzo mocno ułatwić np. pracę administratora strony albo e-sklepu, bo jeśli dobrze skonfigurujemy je na serwerze witryny, to mogą za niego zająć się:

  • kopiami zapasowymi – np. codziennie w nocy wykonywać backup bazy danych i plików, a potem przesyłać go na zewnętrzny serwer;
  • aktualizacją danych – czy to na mapie strony XML, czy np. w feedzie produktowym; 
  • porządkami na serwerze – czyszczeniem cache, usuwaniem starych logów i plików tymczasowych, które potrafią czasem zająć zaskakująco dużo miejsca;
  • wysyłką wiadomości i raportów – newsletterów, przypomnień o porzuconych koszykach, cotygodniowych raportów SEO z Google Search Console;
  • monitoringiem – np. sprawdzać, czy strona na pewno odpowiada na zapytania albo czy nie zbliża się termin wygaśnięcia certyfikatu SSL.

WP-Cron, czyli „cron” w WordPressie

Co ciekawe, własny, wbudowany system planowania zadań ma nawet WordPress. Dzięki niemu admin strony może, powiedzmy, zaplanować z wyprzedzeniem publikację wpisów na blogu, a wtyczki CMS-a same sprawdzają dostępność aktualizacji. Bardzo przydatne; haczyk polega na tym, że WP-Cron nie działa w tle, tylko uruchamia się… przy każdych odwiedzinach strony. 

Cron job

Zdj 2. WP-Cron nie działa do końca tak, jak prawdziwy cron, raczej naśladuje jego funkcje.

Źródło: kinsta.com/blog/wordpress-cron-job

Z tego wynikają dwa problemy. Na rzadko odwiedzanych witrynach zadania potrafią się mocno spóźniać, z kolei na stronach z dużym ruchem cron jobs potrafią odbić się na wydajności, bo WordPress przy każdej wizycie musi uruchomić skrypt wp-cron.php. 

Dlatego też wielu administratorów po prostu wyłącza wbudowanego WP-Cron – wystarczy linijka define(’DISABLE_WP_CRON’, true) w pliku wp-config.php – w jego miejsce ustawia prawdziwy cron job, który wywołuje plik wp-cron.php np. co kilka minut.

Najprostszy sposób na automatyzację zadań

Cron to narzędzie stare niczym pierwsze PC-ty, bardzo proste i… właśnie dlatego tak przydatne. Sam z siebie niczego nie robi, tylko pilnuje, żeby rzeczy na serwerze działy się na czas – ale dzięki temu może zdjąć z głowy administratora całą listę tasków, których zaniedbanie potrafi sporo kosztować. 

Zainteresował Cię ten temat? Zachęcamy również do lektury kolejnych wpisów w naszym słowniku oraz na blogu Semcore!

tło banera
Genialne firmy mnożą
swój potencjał z
Ocena Clutch
5.0
Ocena Google
4.8
tło banera
Bądź widoczny w Google i wyszukiwarkach przyszłości (ChatGPT, Gemini, Perplexity i inne)
Zostaw adres e-mail — porozmawiamy o widoczności Twojej strony w AI.
Dane przetwarzamy w celu kontaktu, zgodnie z naszą
polityką prywatności
Marcin Stypuła
Jakub Rożnowski
Jakub Rożnowski Copywriter
Copywriter, który łączy świat marketingu cyfrowego z perspektywą naukową i humanistyczną. Pisze od 2021 roku, specjalizując się w długich, eksperckich artykułach, poradnikach i treściach wizerunkowych. W pracy stawia na połączenie dwóch wartości: rzetelnego researchu oraz lekkiego, często humorystycznego stylu. Poza copywritingiem rozwija się twórczo – pisze opowiadania, wiersze i myśli o pierwszej powieści.

Udostępnij

Oceń tekst

Średnia ocen 0 / 5. Liczba głosów: 0

Brak głosów - oceń jako pierwszy!

Zapytaj o ofertę SEO
Dołącz do newslettera
Powiązane artykuły Najnowsze Popularne

Zbuduj Twój potencjał SEO

Skonsultuj z nami Twoją sytuację w wyszukiwarce. Porozmawiajmy o Twoich celach i możliwościach współpracy