Cron to usługa planowania zadań oparta na czasie, dostępna w systemach operacyjnych typu Unix. Użytkownicy planują uruchamianie zadań (poleceń lub skryptów) okresowo o ustalonych porach, datach i odstępach czasu.
Pochodzenie i wczesna historia Crona
Pierwsza implementacja cron sięga wersji 7 Uniksa. Termin „cron” pochodzi od greckiego słowa oznaczającego czas, „chronos”. Ta wersja Uniksa, wydana w 1979 roku, zawierała prosty program cron, który wykonywał zadania w określonych odstępach czasu. Funkcjonalność Crona została później rozszerzona przez Paula Vixie w 1987 roku. Ta wersja, znana jako Vixie Cron, jest obecnie najczęściej instalowaną wersją i jest to wersja, o której powszechnie mówi się, gdy ludzie wspominają o „Cron”.
Rozwijanie koncepcji Crona
Cron pozwala użytkownikom zautomatyzować konserwację i administrację systemem, chociaż jego uniwersalny charakter sprawia, że jest przydatny do takich rzeczy, jak pobieranie plików z Internetu i pobieranie poczty e-mail w regularnych odstępach czasu. Środowisko cron przypomina piaskownicę, w której zadania cron są uruchamiane poza zwykłym środowiskiem powłoki.
Każdy użytkownik może mieć swój własny crontab i chociaż są to pliki w /var/spool/, nie są przeznaczone do bezpośredniej edycji. Składnię wyrażeń cron można podzielić na dwa główne typy składni: składnię cron uniksową i bardziej złożoną składnię znaną jako składnia wyrażeń cron lub składnia cron kwarcowy.
Wewnętrzna struktura Crona i jak to działa
Cron działa w oparciu o prosty, ale potężny plik konfiguracyjny znany jako plik „crontab”. Plik ten zawiera jeden wiersz dla każdego zadania, które ma zostać uruchomione, składający się z pięciu pól godziny i daty, po których następuje polecenie, które ma być uruchamiane o określonych porach.
Pięć pól reprezentuje:
- Minuty po godzinie (0 – 59)
- Godziny w ciągu dnia (0 – 23)
- Dni w miesiącu (1 – 31)
- Miesiące w roku (1 – 12)
- Dni tygodnia (0 – 7, gdzie 0 i 7 to niedziela)
Pole poleceń zawiera zadanie, które ma zostać uruchomione w godzinach określonych w pierwszych pięciu polach.
Kluczowe cechy Crona
Podstawowe funkcje Crona obejmują:
- Umożliwia automatyczne uruchamianie zadań w tle w regularnych odstępach czasu.
- Zapewnia elastyczną platformę do planowania zadań (skryptów lub poleceń) z różnymi jednostkami czasu.
- Każdy użytkownik może mieć swój własny plik crontab.
- Zadania Cron można zaplanować tak, aby uruchamiały się według minut, godzin, dni tygodnia, dni miesiąca i miesięcy w roku.
- Cron zapewnia prosty i skuteczny sposób automatyzacji różnych zadań systemowych.
Rodzaje Crona
Zadania Cron można ogólnie podzielić na następujące kategorie:
Typ | Opis |
---|---|
Ponowne uruchomienie | Uruchamia się raz przy uruchomieniu. |
Anakron | Uruchamia się w odstępach czasu określonych w dniach. |
Systemowy Cron | Przechowywane w /etc/crontab i w katalogu /etc/cron.d/, mają mieć zasięg ogólnosystemowy. |
Użytkownik Cron | Każdy użytkownik może mieć własne i są one przechowywane w /var/spool/cron/crontabs/. |
Użycie Crona, problemy i ich rozwiązania
Cron jest przydatny do automatyzacji zadań, ale może prowadzić do problemów, jeśli nie będzie używany ostrożnie. Na przykład źle skonfigurowane zadanie cron może prowadzić do wysokiego użycia procesora. Ponadto cron wysyła e-mailem wyniki swoich zadań, jeśli takie istnieją, do użytkownika, jako który uruchamia zadania. Może to spowodować przeoczenie błędów, jeśli nie jest regularnie sprawdzane.
Typowe rozwiązania tych problemów obejmują:
- Regularne sprawdzanie wysokiego użycia procesora i rekonfiguracja lub zatrzymywanie niepotrzebnych zadań.
- Przed ustawieniem ich jako zadań cron upewnij się, że wszystkie polecenia i skrypty działają poprawnie.
- Przekierowanie danych wyjściowych do pliku dziennika lub skonfigurowanie serwera pocztowego w celu skuteczniejszego monitorowania zadań cron.
Porównania z podobnymi narzędziami
Istnieją inne harmonogramy zadań podobne do cron, takie jak anacron i timery systemowe. Podstawowe różnice między nimi można podsumować w następujący sposób:
Narzędzie | Opis |
---|---|
Cron | Nadaje się do zadań wykonywanych o określonych porach dnia. Nie uruchamia opuszczonych zadań. |
Anakron | Nadaje się do zadań uruchamianych raz dziennie/co tydzień/co miesiąc. Uruchomi utracone zadania, gdy maszyna będzie ponownie online. |
Systemowy | Nadaje się do bardziej złożonych scenariuszy, ponieważ oferuje więcej opcji i dobrze integruje się z nowoczesnymi dystrybucjami Linuksa. |
Perspektywy na przyszłość i powiązane technologie
Wraz z ewolucją systemów opartych na Unixie, rozwija się także Cron. Pomimo pojawienia się bardziej zaawansowanych programów do planowania zadań, takich jak systemd, prostota i możliwości Crona sprawiają, że jest on nadal w powszechnym użyciu.
Ostatni trend w kierunku aplikacji kontenerowych i architektur mikrousług przyniósł także nowe sposoby wykorzystania Crona. Na przykład Kubernetes, popularna platforma do orkiestracji kontenerów, ma funkcję znaną jako CronJobs, która jest podobna do Cron w systemach uniksowych.
Serwery proxy i Cron
Serwery proxy można skutecznie wykorzystywać w połączeniu z Cronem w celu automatyzacji niektórych zadań. Na przykład, jeśli masz skrypt, który wymaga regularnego dostępu do witryny internetowej lub interfejsu API za pośrednictwem serwera proxy, możesz skonfigurować zadanie cron, aby uruchamiał ten skrypt w określonych odstępach czasu.
Cron może być również używany do rotacji serwerów proxy w określonych odstępach czasu, zmniejszając ryzyko zablokowania pojedynczego serwera proxy. Na przykład usługi proxy OneProxy można zautomatyzować za pomocą Cron w przypadku zadań takich jak skrobanie danych, automatyzacja zadań w mediach społecznościowych i nie tylko.
powiązane linki
Aby uzyskać więcej informacji na temat Crona, skorzystaj z następujących zasobów: