0Pricing
Linux Server Deployment & SSH Mastery · Lekcja

Zadania zaplanowane za pomocą Cron

Automatyzuj cykliczne zadania serwera, tworząc i zarządzając zadaniami cron, aby skrypty i polecenia uruchamiały się w określonych odstępach czasu.

Zadania zaplanowane za pomocą Cron to bezpłatna lekcja Linux Server Deployment & SSH Mastery na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Server Deployment & SSH Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.

Dlaczego warto automatyzować zadania serwera?

Ręczne wykonywanie zadań na serwerze może być powtarzalne i podatne na błędy ludzkie. Automatyzacja pozwala oszczędzać czas i zapewnia spójne wykonywanie zadań.

Wyobraź sobie, że co noc trzeba wykonać kopię zapasową bazy danych albo co tydzień usunąć stare pliki dzienników. Ręczne wykonywanie tych czynności jest żmudne i łatwo o nich zapomnieć.

Właśnie tutaj przydają się narzędzia do planowania zadań! Pozwalają serwerowi automatycznie wykonywać zadania o określonych porach lub w określonych odstępach, pozostawiając Ci czas na ważniejsze działania.

Poznaj Cron: harmonogram zadań serwera

Cron to podstawowe narzędzie systemu Linux do planowania zadań. Działa jak osobisty asystent serwera, dbając o to, aby polecenia lub skrypty były automatycznie uruchamiane w tle o ustalonych porach.

Takie zaplanowane zadania nazywają się zadaniami cron. Każdy użytkownik systemu może mieć własną listę zadań cron, przechowywaną w specjalnym pliku o nazwie crontab.

Edytowanie pliku crontab

Do zarządzania własnymi zadaniami cron służy polecenie crontab.

  • Aby edytować plik crontab, wpisz: crontab -e
  • Aby wyświetlić bieżące zadania cron, wpisz: crontab -l
  • Aby usunąć wszystkie swoje zadania cron, wpisz: crontab -r (Używaj ostrożnie!)

Po uruchomieniu crontab -e plik crontab zostanie otwarty w domyślnym edytorze tekstu, najczęściej nano lub vi.

Składnia crontab: pola czasu

Każdy wiersz pliku crontab opisuje jedno zadanie cron i ma określony format. Zawiera pięć pól czasu, po których następuje polecenie do wykonania.

Format:

minute hour day_of_month month day_of_week command
  • Minuta: 0–59
  • Godzina: 0–23 (0 oznacza północ)
  • Dzień miesiąca: 1–31
  • Miesiąc: 1–12 (lub Jan–Dec)
  • Dzień tygodnia: 0–7 (0 lub 7 oznacza niedzielę, 1 oznacza poniedziałek)

Składnia crontab: gwiazdki i zakresy

Nie zawsze trzeba podawać dokładne liczby. Cron oferuje znaki specjalne zwiększające elastyczność:

  • * (gwiazdka): Obejmuje każdą możliwą wartość danego pola. Na przykład * w polu minut oznacza „co minutę”.
  • - (łącznik): Określa zakres. Na przykład 9-17 w polu godzin oznacza „od godziny 9 do 17”.
  • , (przecinek): Określa listę wartości. Na przykład Mon,Wed,Fri lub 1,3,5 dla dni tygodnia.
  • / (ukośnik): Określa krok. Na przykład */5 w polu minut oznacza „co 5 minut”.

Składnia crontab — praktyczne przykłady

Przyjrzyjmy się typowym przykładom, aby utrwalić zdobytą wiedzę:

  • * * * * * /path/to/script.sh
    Uruchamia się co minutę.
  • 0 3 * * * /usr/bin/backup.sh
    Uruchamia się codziennie o 3:00.
  • 0 9-17 * * 1-5 /usr/local/bin/check_service.py
    Uruchamia się co godzinę od 9:00 do 17:00, od poniedziałku do piątku.
  • */15 * * * * echo "Hello, CoddyKit!"
    Uruchamia się co 15 minut.

Pamiętaj, aby zastąpić /path/to/script.sh rzeczywistym poleceniem lub ścieżką do skryptu.

Specjalne ciągi crontab

W przypadku bardzo typowych potrzeb związanych z planowaniem Cron udostępnia specjalne ciągi, które są łatwiejsze do odczytania niż składnia pięciu pól:

  • @reboot: Uruchamia raz podczas startu systemu.
  • @hourly: Uruchamia raz na godzinę, na początku godziny.
  • @daily: Uruchamia raz dziennie, o północy.
  • @weekly: Uruchamia raz w tygodniu, o północy w niedzielę.
  • @monthly: Uruchamia raz w miesiącu, o północy pierwszego dnia miesiąca.
  • @yearly (lub @annually): Uruchamia raz w roku, o północy 1 stycznia.

Te skróty świetnie nadają się do prostych, cyklicznych zadań.

Zmienne środowiskowe i ścieżki

Podczas uruchamiania zadania cron korzysta z bardzo ograniczonego zestawu zmiennych środowiskowych. Dlatego polecenia działające w terminalu mogą nie działać w cron.

Aby uniknąć problemów:

  • Zawsze używaj ścieżek bezwzględnych do poleceń i skryptów (np. /usr/bin/php zamiast php).
  • Możesz zdefiniować zmienną PATH bezpośrednio w pliku crontab, np. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • Możesz też ustawić zmienne środowiskowe bezpośrednio w skrypcie.

Obsługa danych wyjściowych i rejestrowania

Domyślnie cron próbuje wysłać pocztą wszelkie dane wyjściowe (stdout i stderr) z zadania cron użytkownikowi będącemu właścicielem pliku crontab. Jeśli system poczty nie jest skonfigurowany, dane te mogą zostać utracone albo zapełnić pliki dzienników.

Najlepiej jawnie przekierowywać dane wyjściowe:

  • Aby odrzucić wszystkie dane wyjściowe: command > /dev/null 2>&1
  • Aby dopisywać dane wyjściowe do pliku dziennika: command >> /var/log/myjob.log 2>&1

Fragment 2>&1 przekierowuje standardowy strumień błędów (2) do tego samego miejsca co standardowy strumień wyjściowy (1).

Cron systemowy a pliki crontab użytkowników

Skupiliśmy się na osobistych plikach crontab użytkowników, zarządzanych za pomocą crontab -e. Świetnie nadają się one do zadań wykonywanych przez poszczególnych użytkowników.

W przypadku zadań dotyczących całego systemu administratorzy często korzystają z:

  • /etc/crontab: Głównego systemowego pliku crontab, który pozwala uruchamiać zadania jako określeni użytkownicy.
  • /etc/cron.d/: Katalogu na osobne pliki cron, często instalowane przez aplikacje.
  • /etc/cron.hourly/, /etc/cron.daily/ itd.: Katalogów, w których umieszcza się skrypty uruchamiane przez system cron w określonych odstępach.

Te opcje na poziomie systemu zapewniają większą kontrolę nad automatyzacją obejmującą cały serwer.

Sprawdź swoją wiedzę o Cron

Opanowałeś podstawy składni crontab. Sprawdźmy, czy potrafisz zinterpretować to zadanie cron.

Podsumowanie: automatyzacja za pomocą Cron

Opanowałeś już najważniejsze informacje dotyczące planowania zadań za pomocą Cron!

Omówiliśmy:

  • Czym jest Cron: Opartym na czasie harmonogramem zadań.
  • Crontab: Osobistym plikiem służącym do definiowania zadań cron.
  • Składnię: Pięć pól czasu i znaki specjalne (*, -, ,, /).
  • Specjalne ciągi: Skróty takie jak @hourly i @reboot.
  • Najlepsze praktyki: Używanie ścieżek bezwzględnych i obsługę danych wyjściowych.

Dzięki Cron możesz automatyzować monotonne zadania, zapewniając płynne i wydajne działanie serwera!

Często zadawane pytania

Czy lekcja „Zadania zaplanowane za pomocą Cron” jest bezpłatna?

Tak — pełny tekst „Zadania zaplanowane za pomocą Cron” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Server Deployment & SSH Mastery, przejdź na CoddyKit PRO. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.

Co nauczysz się w „Zadania zaplanowane za pomocą Cron”?

Automatyzuj cykliczne zadania serwera, tworząc i zarządzając zadaniami cron, aby skrypty i polecenia uruchamiały się w określonych odstępach czasu. Ćwiczysz Linux Server Deployment & SSH Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Linux Server Deployment & SSH Mastery?

Nie wymagamy żadnego doświadczenia. Linux Server Deployment & SSH Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Zadania zaplanowane za pomocą Cron”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Linux Server Deployment & SSH Mastery?

Tak. Każda lekcja Linux Server Deployment & SSH Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Zarządzanie użytkownikami i grupami
  2. Monitorowanie procesów systemowych
  3. Zadania zaplanowane za pomocą Cron
  4. Zarządzanie usługami systemowymi za pomocą systemd
← Powrót do Linux Server Deployment & SSH Mastery