Opanowanie zadań Cron i automatyzacja podstawowych zadań serwera

Artykuł napisany przez:
  • Polecane artykuły
  • Zaktualizowano: Sep 06, 2017

Hosting jest zaprojektowany tak, aby był łatwy, bezpośredni i idealny dla profesjonalistów, którzy są w podróży i po prostu nie mogą poświęcić każdej godziny każdego dnia zarządzanie ich serwerem hostingowym i powiązane zadania.

W tym celu prawie każdy serwer oparty na systemie Unix lub Linux oferuje zautomatyzowany menedżer zadań znany jako "Cron Job"Lub" Crontab ".

To narzędzie programistyczne przypomina programowanie zadań w systemie Microsoft Windows, ponieważ można o nim powiedzieć, aby w określonych momentach wykonywał określone czynności, oszczędzając użytkownikowi ręczne wykonywanie tych zadań. Jest to szczególnie ważne, gdy weźmie się pod uwagę, że wiele rutynowych procedur konserwacji, tworzenia kopii zapasowych i komunikacji z serwerem może zająć wiele godzin. Większość ludzi po prostu chce wrócić do domu po dniu spędzonym w biurze i zrelaksować się, zamiast spędzać wieczór na tworzeniu kopii zapasowych plików i zarządzaniu kontaktami.

Ci ludzie mają szczęście, ponieważ każde zadanie może być zaplanowane codziennie, co tydzień lub co miesiąc - lub nawet dalej, w niektórych przypadkach, a konkretne instrukcje mogą zostać przekazane serwerowi w narzędziu Crontab, w jaki sposób wykonać zadanie , jak wiedzieć, kiedy jest ukończone, i co robić, gdy zadanie jest rzeczywiście zakończone.

Użytkownicy będą mogli się zrelaksować, podczas gdy ich serwer będzie ciężko pracować przez wiele godzin; lub mogą po prostu zaplanować prace do wykonania, gdy ciężko pracują we własnych biurach. Ponieważ jest to zautomatyzowane, zadanie Cron może wystąpić praktycznie w każdej godzinie dnia.

Nauka mówienia o czasie przy użyciu formatu zadania Crona

Praca Crona nie jest łatwa do opanowania; w rzeczywistości jest powszechnie uważany za jedną z najbardziej zaawansowanych konfiguracji dostępnych w standardzie Linux or Unix serwer internetowy. Dzieje się tak częściowo dlatego, że język używany do programowania tych zadań jest tak archaiczny, a w niektórych przypadkach całkowicie cofnięty. Jeśli chodzi o opowiadanie o określonej godzinie zadania Cron lub zakładki Cron, rzeczy są z pewnością odwrotne, do góry nogami i trochę mylące.

Format określania czasu za pomocą zadania Cron jest taki:

MINUTE HOUR MIESIĄCA DZISIAJ NA DZIEŃ MIESIĄCA

To cała jedna linia, a parzysta liczba i polecenie są obok siebie w jednym jednolitym skurczu. Wystarczy, aby większość deweloperów i operatorów serwerów krzywiła się, a wielu z nich robi to do czasu, aż zrozumieją, jak opracować wydajną pracę Crona.

Ważne jest, aby pamiętać, że każdy aspekt czasu pracy Crona jest liczbowy; nie ma nazw dni z nazwami miesięcy ani innych słów używanych w trakcie opracowywania czasu, w którym zadanie powinno być wykonywane.

Dlatego ustawmy zadanie Crona dla 10: 30 jestem w lipcu 7th, aby poczuć, jak wygląda czas pracy Crona, kiedy zmienia się on w ściśle liczby.

30 10 07 07 *

Powyższy przykład stanowi, że zadanie powinno zostać zakończone w 30-tej minucie dziesiątej godziny siódmego dnia siódmego miesiąca. Wszystkie liczby mają dwie cyfry, nawet jeśli miesiąc lub dzień jest tylko jedną cyfrą. Jest to ważne do zapamiętania, ponieważ pojedyncza cyfra często powoduje, że zadanie Crona jest nieważne i po prostu nie będzie wykonywane. Na końcu struktury gwiazdka wskazuje, że zadanie powinno zostać wykonane w dowolnym dniu tygodnia. Jest to ważne, ponieważ ustawienie go na 03 na środę oznaczałoby, że zadanie byłoby wykonywane tylko w lipcu 7th, gdyby ten dzień był wtorek. To może się zdarzyć raz na siedem lub osiem lat, co jest niewielką absorbcją dla większości deweloperów.

Innym ważnym czynnikiem, który należy wziąć pod uwagę przy tworzeniu zadania Cron, jest to, że format godzinny to czas militarny 24 godz., A nie czas cywilny w wymiarze 12 godz. Aby zmienić czas pracy Crona na 10 pm, godzina zostanie zmieniona na 22 zamiast bieżącego 10.

Przykłady zadań Crona

Wreszcie, jeśli użytkownik chce tylko wykonać zadanie w trybie dziennym, miesięcznym lub rocznym, może pominąć proces ustawiania określonego czasu w całości. Zamiast tego proces zadania Cron zapewnia po prostu użycie zmiennych, które określają, kiedy zadanie jest wykonywane w tych częstych odstępach czasu. Obejmują one:

  • @codziennie
  • @miesięczny
  • @rocznie

Ponieważ czas nie może być ściśle kontrolowany i określany za pomocą godzin i minut, zadania te będą miały miejsce dokładnie o północy, zgodnie z wewnętrznym czasem serwera, w żądanym interwale. Oznacza to, że interwał @ miesięczny nastąpi dokładnie o północy pierwszego dnia każdego miesiąca. Odstęp @ rok będzie występował dokładnie o północy pierwszego dnia każdego roku; a interwał @dni pojawia się dokładnie o północy każdego dnia w roku.

Jest to znacznie łatwiejsze niż ustawienie konkretnej daty, godziny i dnia tygodnia, ale niektóre zadania wykonywane o północy pierwszego dnia miesiąca lub roku mogą mieć pewne wady dla niektórych klientów. Podczas planowania zadań, które mają miejsce dokładnie o północy, zawsze pamiętaj o potrzebach zarówno administratorów, jak i osób odwiedzających witrynę.

Uchwycenie zmiennej "COMMAND" i co z nią zrobić

Jak widać w powyższym przykładzie, skonstruowanie rzeczywistego zadania Crona jest stosunkowo łatwe. Data musi być najpierw zdefiniowana, a następnie funkcja zadania Cron jest natychmiast definiowana. Ta funkcja może być dosłownie wszystkim, włączając uruchamianie skryptu PHP lub uruchamianie dostosowanego skryptu kopii zapasowej, który przechowuje pliki serwera i dane w pliku zdalnym lub lokalnym. Dla wyjaśnienia, będziemy budować na przykładzie, który był wcześniej używany i poinstruować zadanie Crona, aby uruchomić skrypt PHP w lipcu 7th w 10: 30 rano. Ten skrypt PHP będzie się nazywał „backup.php” i założymy, że plik PHP jest pełnym skryptem kopii zapasowej, który zbiera, kompresuje i przechowuje pliki witryn siódmego miesiąca, gdy zostanie o to poproszony przez serwer. Oto jak to wygląda:

30 10 07 07 * http://twoja-domena-domeny.com/backup-scripts/backup.php

Gdy ta praca Crona zostanie wpisana na listę kart Cron serwera, zostanie automatycznie wykonana w 10: 30 jestem co roku 7th każdego roku. Zostanie uruchomiony skrypt kopii zapasowej PHP, który znajduje się w katalogu „backup-scripts”, i tam działa prawdziwy geniusz konfiguracji zadań Cron.

Zamiast wymagać zaawansowanych poleceń swoich użytkowników, aby wykonywać takie czynności jak tworzenie kopii zapasowych stron i opróżnianie pamięci podręcznej, po prostu daje użytkownikom możliwość wykonywania istniejących skryptów w określonym przedziale czasu lub w określonym dniu o określonej godzinie. Oznacza to, że nie jest potrzebna zaawansowana wiedza programistyczna poza wiedzą użytkownika. PHP doskonale nadaje się do tworzenia kopii zapasowych plików witryny, ponieważ są to bardziej zaawansowane pliki i języki programowania, które bardziej zaawansowani użytkownicy mogą opracować dla swojego serwera Linux.

Ta prosta konfiguracja może być użyta do zrobienia praktycznie wszystkiego, o ile wstępnie napisany skrypt przewiduje wykonanie tych działań niezależnie od danych wprowadzanych przez użytkownika. Oznacza to, że każdy skrypt wykonywany przez zadanie Cron na karcie Cron musi być w pełni zautomatyzowany i zdolny do samodzielnego wykonywania. Na przykład niemożliwe byłoby (i po prostu nielogiczne) zadanie Cronowi, aby codziennie wykonywał indeks WordPress lub plik motywu. Po prostu nie zdefiniowano żadnych akcji ani zautomatyzowanych procesów, a podczas gdy zadanie Cron z pewnością wykonałoby plik, nie zrobiłoby to nic i usadowiłoby się statycznie, dopóki dane wejściowe użytkownika nie zostały dostarczone w inny sposób.

Z tego powodu, jeśli kodujesz lub pobierasz skrypty lub inne kopie zapasowe do pracy z zadaniami Cron, zawsze upewnij się, że wymagają one dokładnie zerowej ilości danych wejściowych przez użytkownika, aby móc poprawnie wykonywać swoje funkcje. Zautomatyzowany harmonogram zadań musi być sparowany z zautomatyzowanym procesem w pliku, który wykonuje. Nie ma wyjątków od tej zasady.

Opanowanie ogólnego pliku kart Cron na typowym serwerze

Każde konkretne zadanie Cron, które zostało określone do wykonania, znajduje się w większym pliku, który jest znany jako karta Cron. Niektóre serwery mają wiele kart Cron dla wielu typów aplikacji i zautomatyzowanych wejść, ale jest to rzadkie i w dużej mierze zarezerwowane dla najbardziej zaawansowanych operatorów serwerów i właścicieli. Ci, którzy mają tylko jeden plik zakładek Cron, mogą użyć poniższych poleceń, aby edytować, usunąć lub wyświetlić plik w całości, a każde z jego zadań automatycznych jest wymienione do wyświetlenia w tym pliku.

crontab -r

Ta komenda usuwa (a więc „r”) lub usuwa cały plik karty Cron. Spowoduje to skuteczne usunięcie wszystkich poleceń i zautomatyzowanych skryptów oraz przywrócenie go do pustego pliku, który można odbudować. Jest to odpowiednia opcja dla tych, którzy zdołali uszkodzić plik lub w jakiś sposób sprzeniewierzać zadania i czasy. Czasami łatwiej jest zacząć od początku.

crontab -e

W tym przypadku "e" oznacza "edytuj". Ci użytkownicy, którzy chcą edytować funkcje opisane na karcie Cron, zamiast całkowicie usuwać plik, mogą użyć tego polecenia, aby przejść do edytora wiersza poleceń, który pozwoli im dodawaj nowe zadania, usuwaj stare lub zmieniaj harmonogramy dla każdego zadania Crona wyszczególnionego w dokumencie karty Cron.

crontab -l

W tym przypadku łatwo jest zapamiętać, kojarząc „L” z „wyglądem. Polecenie to pozwala administratorowi serwera po prostu wyświetlić pełną zawartość pliku karty Cron bez całkowitego usuwania go z serwera i bez możliwości edycji zawartości. To wyświetlanie zawartości karty Cron tylko do odczytu jest idealne do zapamiętywania, które zadania są zaplanowane na jakie czasy, oraz do sprawdzania integralności samego pliku.

Dlaczego ważne jest opanowanie pracy Crona Pliki automatyzacji Cron Tab

Ogólnie rzecz biorąc, jedyną rzeczą zautomatyzowaną w odniesieniu do serwera jest wirowanie jego dysku twardego i wydajność jego funkcji sprzętowych. Poza tym, serwer musi być przeszkolony i poinstruowany, aby wykonywać rutynowe i niezwykłe zadania, które wykraczają poza zwykłe wyświetlanie panelu sterowania oprogramowaniem lub aktualizację instalacji PHP lub Perl, które użytkownik umieścił na dysku twardym.

Należy pamiętać, że jedną z najważniejszych funkcji, które serwer może wykonywać regularnie, jest tworzenie kopii zapasowej danych i ustawień w witrynie. Praktycznie nie ma sposobu na zautomatyzowanie tego procesu bez pracy Cron, a ze względu na charakter Internetu i wszystkich złośliwych użytkowników, którzy codziennie przechodzą przez witrynę, brak automatyzacji tego procesu codziennie lub co tydzień może spowodować znaczne i katastrofalna utrata danych.

Poza tym istnieje wiele zadań, które powinny zostać zautomatyzowane przy użyciu procesu pracy Cron. Zadania te obejmują usuwanie wszelkich pamięci podręcznych witryn, które mogą wyświetlać nieaktualne obrazy lub treści drukowane odwiedzającym witrynę; obejmuje również usuwanie starych plików, czyszczenie starych katalogów i obrazów oraz upewnianie się, że wszystko przechowywane na dysku twardym serwera jest aktualne i nieuszkodzone.

Tak jak zdrowy komputer osobisty automatycznie planuje konserwację dysku, skanowanie antywirusowe i złośliwe oprogramowanie, aktualizacje oprogramowania i usuwanie plików, zdrowy serwer musi być tak skonfigurowany, aby dbać o siebie i utrzymać dobrą opinię. W przeciwnym razie staje się podatny na awarie, próby włamania i utratę danych, które doprowadzą do utraty zysków, reklamy, tworzenia treści, a nawet statusu rankingu wyszukiwarek.

Łatwy do nauczenia i łatwiejszy do wdrożenia

Tworzenie zadania Cron na standardowej karcie Cron jest jedną z najłatwiejszych czynności, jakie może wykonać administrator serwera.

Proces leży w standardowym wierszu poleceń i dzieli każdy segment czasu na dwucyfrowy kod.

Ponieważ nie wymaga dodatkowej znajomości żadnego nowego języka programowania w celu zautomatyzowania zadań, usługa zasadniczo opiera się na istniejącej wiedzy o programowaniu i obsłudze serwera, którą posiada już administrator. W tym przypadku nie ma po prostu żadnego powodu, aby nie automatyzować podstawowych funkcji serwera i zapewnić integralność danych i operacji w witrynie.

O Jerry Low

Założyciel WebHostingSecretRevealed.net (WHSR) - przegląd hostingu zaufany i używany przez użytkowników 100,000. Więcej niż doświadczenie 15 w hostingu, marketingu afiliacyjnym i SEO. Współpracuje z ProBlogger.net, Business.com, SocialMediaToday.com i innymi.