Cron. Justyna Puszczewicz Bartosz Fengler. 1 Wprowadzenie 2. 2 Nota historyczna 2

Podobne dokumenty
Jednorazowe zaplanowanie zadania program at.

Konfigurowanie i zastosowanie systemu Cron

1. shell co to i co umożliwia, jakie są shell e. 2. skrypty powłoki. crone dr inż. Anna Zatwarnicka Skrypty i crone

Rejestrator czasu pracy z foto-rejestracją

UWAGA!!! Przed przystąpieniem do zamknięcia roku proszę zrobić kopie bezpieczeństwa

Podstawy administracji systemu Linux

INSTRUKCJA INSTALACJI APLIKACJI SEPI W SYSTEMIE LINUX. Dokumentacja zasilania aplikacji SEPI dla systemu Linux

Pracownia komputerowa. Dariusz wardecki, wyk II

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

Getin Noble Bank SA wersja 1.0 Infolinia

Win Admin Replikator Instrukcja Obsługi

Synchronizacja czasu - protokół NTP

Dokumentacja programu. Terminarz zadań. Serwis systemu Windows. Zielona Góra

Wykaz zmian w programie WinAdmin Replikator

Wykaz zmian w programie SysLoger

VinCent Administrator

Wykaz zmian w programie SysLoger

Konfiguracja SNMP z wykorzystaniem pakietu MRTG

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

R o g e r A c c e s s C o n t r o l S y s t e m 5. Nota aplikacyjna nr 016 Wersja dokumentu: Rev. A. obecności w VISO

SYSTEM INFORMATYCZNY KS-SEW

KOMISJE WYBORCZE PIT EKSPORT E-PITY

Definiowanie filtrów IP

InPost PACZKOMATY. (Moduł Magento 2) v Strona 1 z 18

Temat lekcji: Har a m r o m nogr g a r m a m za z d a ań a

SoftVig Systemy Informatyczne Sp. z o.o. Szczecin , ul. Cyfrowa 4

DBE DataBase Engineering

Automatyczna dostawa plików i raportów (AFRD)

Pobieranie komunikatów GIF

Usługi sieciowe systemu Linux

7. zainstalowane oprogramowanie zarządzane stacje robocze

Administratora CSIZS - OTM

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

Kalipso wywiady środowiskowe

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

System kontroli dostępu ACCO NET Instrukcja instalacji

Wykaz zmian w programie WinAdmin Replikator

Instrukcja użytkowania oprogramowania SZOB PRO

Podręcznik administratora Systemu SWD ST Instrukcja instalacji systemu

Syslog. Dziennik systemowy

Instrukcja obsługi systemu elektronicznego katalogu przedmiotów (sylabusów)

instrukcja INSTALACJI APi_proxy

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Administracja systemem Linux

BACKUP BAZ DANYCH FIREBIRD

Wykaz zmian w programie SysLoger

Utwórz na pulpicie katalog: pierwsza-litera-imienia_nazwisko (np. j_kowalski). W tym katalogu zapisz pliki, które będą tworzone w ramach ćwiczenia

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Instalacja krok po kroku /instalacja programu, serwera bazy danych/

Qmail radość listonosza. Autorzy: Bartosz Krupowski, Marcin Landoch IVFDS

1. Internet Explorer a) Uruchamiamy przeglądarkę Internet Explorer i przechodzimy do ustawień

Wykaz zmian w programie SysLoger

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

Data wydania: Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego

Program kadrowo płacowy - wersja wielodostępna z bazą danych Oracle SQL Server 8 lub 9

Uruchamianie zadań w środowisku CLUSTERIX z wykorzystaniem klienta tekstowego systemu GRMS

Wymagania do zdalnej instalacji agentów firmy StorageCraft

PROGRAM DO ARCHIWIZACJI NOŚNIKÓW KOPII ELEKTRONICZNEJ

Mazowiecki Elektroniczny Wniosek Aplikacyjny

MEDIS_EWUS_AUTOMAT SYSTEM KS MEDIS: AUTOMAT EWUŚ Wydanie: 1.0 Data wydania: Marzec 2013 Strona/stron: 1/5

4. Podstawowa konfiguracja

Assembly. Connection MIL 72 D250 MIL 72 D150 MIL 72A D150 MIL 72E D150 FMD 150

E-book: Automatyzacja powiadomień SMS. CASE STUDY

1 Przygotował: mgr inż. Maciej Lasota

Instrukcja połączenia z programem Compas LAN i import konfiguracji

ibok Internetowe Biuro Obsługi Klienta

Internetowy serwis Era mail Aplikacja sieci Web

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Wykaz zmian w programie Win Admin Replikator

Laboratorium - Harmonogramowanie zadania przy użyciu GUI i polecenia AT w systemie Windows Vista

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

Lokalna kopia bioinformatycznego serwera obliczeniowego jako wysokowydajne środowisko obliczeniowe

Wykaz zmian w programie Win Admin Replikator

Automatyczna instalacja oprogramowania.

Środowisko programisty. Środowisko programisty 1/35

INSTRUKCJA UŻYTKOWNIKA Instalacja KS - EDE w systemie KS - ZSA ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

Zarządzanie z poziomu Web Center Control

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

SYSTEM INFORMATYCZNY KS-SEW

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Konfiguracja parametrów pozycjonowania GPS /5

MSConfig, System ConfigurationUtility

Program kadrowo płacowy - wersja wielodostępna z bazą danych Oracle SQL Server 10g

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Bazy danych Karta pracy 1

Laboratorium - Harmonogramowanie zadania przy użyciu GUI i polecenia AT w systemie Windows 7

Technologie informacyjne lab. 4

Wykonywanie kopii bezpieczeństwa w bazie Oracle 11g

Pracownia internetowa w szkole ZASTOSOWANIA

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Zadania do wykonania Firewall skrypt iptables

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

Struktury systemów operacyjnych

Instrukcjaaktualizacji

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Win Admin Replikator Instrukcja Obsługi

Win Admin Monitor Instrukcja Obsługi

Transkrypt:

Cron Justyna Puszczewicz Bartosz Fengler Spis treści 1 Wprowadzenie 2 2 Nota historyczna 2 3 Jak działa demon cron? 2 3.1 Podstawowe komendy........................... 2 3.2 Algorytm wykonywania zaplanowanych zadań............. 3 4 Konfiguracja crona 3 5 crontab 4 5.1 Uprawnienia................................ 4 5.2 Podstawowe komendy........................... 5 5.3 Składnia wpisów w tabeli crontab.................... 5 5.4 Przykłady definicji............................ 6 6 Zadania ćwiczeniowe 7 1

1 Wprowadzenie Cron jest unixowym demonem odpowiadającym za wykonywanie poleceń lub skryptów w zaplanowanym przez użytkownika czasie. Przykładowym zastosowaniem crona może być automatyzacja zarządzania systemem. Za przechowywanie informacji o zaplanowanych do wykonania zadaniach odpowiada crontab (cron table tabele czasowe). Tabele te zawierają definicję komend shellowych do wykonania w określonym czasie. Każdy użytkownik może posiadać swoją własną tabelę crontab. Ponadto często istnieje też tabela systemowa znajdująca się zazwyczaj w katalogu /etc lub w podkatalogach /etc, której wpisy edytować może jedynie administrator systemu. 2 Nota historyczna Najbardziej rozpowszechniona wersja crona została napisana przez Paula Vixie w 1987 roku. Początkowe wersje crona były obciążające dla systemu nawet wtedy, gdy nie było do wykonania żadnych zadań. Wynika to z faktu, że cron regularnie, co minutę sprawdzał całą listę potencjalnych zadań do wykonania. Obecny udoskonalony algorytm wykorzystuje DES (discrete event simulation), co odpowiada za reprezentację kolejki chronologicznie ułożonych zadań do wykonania. 3 Jak działa demon cron? Cron uruchamiany jest automatycznie z /etc/init.d. Wczytuje on wszystkie znalezione tabele z definicjami zadań do wykonania do pamięci. W razie modyfikacji którejkolwiek z tabel crontab, cron przebudza się co minutę, sprawdzając czy nastąpiły ewentualne zmiany i w takim przypadku, ładuje on ponownie odpowiednie tabele. 3.1 Podstawowe komendy cron -f przełącznik -t powoduje uruchomienie crona w trybie pierwszoplanowym nie jako demon cron -l włącza tryb zgodności ze standardem LSB (ang. Linux System Base) cron -L loglevel przełącznik -L ustawia poziom szczegółowości logów crona. Dopuszczalne wartości loglevel to odpowiednio: 0 brak logowania, 1 logowanie uruchomienia zadań, 2 logowanie zarówno uruchomienia, jak i zakończenia wykonywania zadań 2

3.2 Algorytm wykonywania zaplanowanych zadań 1. Po starcie, cron przeszukuje zarówno główną, systemową tabelę crontab (/etc/crontab), jak i pliki crontab wszystkich użytkowników systemu, które znajdują się w katalogu /var/spool/cron/crontabs i nazwane są od nazw użytkowników. Znalezione tabele ładuje on do pamięci. 2. Dla każdej znalezionej tabeli ustala czas wywołania najbliższego zadania. 3. Kolejkuje znalezione w kroku 2. zadania wraz z odpowiadającymi im pięcioma polami definiującymi czas ich wykonania. 4. Następnie w pętli wykonywane są następujące kroki: (a) sprawdza zadanie znajdujące się na początku kolejki i oblicza, za jaki czas powinno ono zostać uruchomione (b) demon zostaje uśpiony na wcześniej obliczony w kroku (a) czas (c) po obudzeniu i ustaleniu bieżącego czasu, cron wykonuje w tle pierwsze zadanie z kolejki z uprawnieniami użytkownika, który je zdefiniował (d) określa czas kolejnego wywołania tego zadania, i umieszcza je ponownie w kolejce względem tego czasu 4 Konfiguracja crona Sposoby planowania zadań: Podstawowym sposobem planowania zadań jest ich definiowanie per użytkownik w dedykowanych tabelach (/var/spool/cron/crontabs) Tabela systemowa /etc/crontab Kolejny typ tabel są to zwykle małe tabele w katalogu /etc/cron.d. Najczęściej używane przez paczki, przy czym zaplanowane w nich zadania uruchamiane są z uprawnieniami powiązanego z danym zadaniem użytkownika. Poniżej przykład tabeli zdefiniowanej przez PHP: Plik konfiguracyjny cron: 3

Należy zaznaczyć, że jeżeli ewentualne wyjście z wykonania komendy nie zostanie wprost przekierowane do wskazanego pliku, to wynik wykonania komendy zostanie przesłany jako wiadomość e-mail na konto użytkownika, który wykonał to zadanie. 5 crontab Narzędziem do zarządzania plikami tabel z harmonogramami wykonywania zadań jest crontab. Każdy użytkownik może posiadać indywidualną tabelę crontab znajdującą się w lokalizacji: /var/spool/cron/crontabs o nazwie zgodnej z nazwą użytkownika. Pliki te ne mogą być jednak edytowane bezpośrednio, a właśnie za pomocą narzędzia crontab. 5.1 Uprawnienia Aby użytkownik mógł definiować własne zadania, które będą wykonane przez crona, musi on: w przypadku istnienia pliku /etc/cron.allow być w nim wylistowany, co wskazuje, że użytkownik ten ma uprawnienia do zarządzania własną tabelą crontab, lub w przypadku gdy plik /etc/cron.allow nie istnieje, natomiast istnieje plik /etc/cron.deny użytkownik ten nie może być w tym pliku wylistowany, ponieważ skutkowałoby to brakiem uprawnień do własnej tabeli, lub 4

w przypadku, gdy żaden z powyżej wymienionych plików nie istnieje w zależności od konfiguracji uprawniony do definiowania tabel jest wyłącznie administrator, lub wszyscy użytkownicy, z administratorem włącznie, lub w przypadku, gdy oba pliki są zdefiniowane uwzględniany jest tylko plik cron.allow, i użytkownik musi być w nim wymieniony, aby mieć odpowiednie uprawnienia do zarządzania własną tabelą Należy zaznaczyć, że administrator jako super-user zawsze posiada takie uprawnienia. Natomiast w standardowej dystrybucji Debiana, początkowo wszyscy użytkownicy także posiadają takie uprawnienie. 5.2 Podstawowe komendy crontab -l listuje wpisy w tabeli użytkownika crontab -e crontab -r przechodzi w tryb edycji tabeli bieżącego użytkownika usuwa tabelę wpisów bieżącego użytkownika 5.3 Składnia wpisów w tabeli crontab Każda linia pliku tabeli crontab złożona jest z wyrażenia CRON, po którym następuje komenda shellowa do wykonania. Wyrażenie CRON składa się z pięciu pozycji określających czas wykonania zadania. Pozycje te określają odpowiednio: * * * * * command min hrs dom mon dow command min minuty (0 59) hrs godziny (0 23) dom dni miesiąca (1 31) mon miesiące (1 12) lub słownie: (JAN-DEC) dow dni tygodnia (0 7), gdzie 0 = nd., 1 = pon., 2 = wt.,..., 6 = sob., 7 = nd. lub słownie: (MON-SUN) command komenda do wykonania Predefiniowane wyrażenia @yearly raz do roku, o północy 1. stycznia 0 0 1 1 * @monthly raz w miesiącu, o północy, 1. dnia miesiąca 0 0 1 * * @weekly raz w tygodniu, o północy, w niedzielę 0 0 * * 0 @daily raz dziennie, o północy 0 0 * * * @hourly raz na godzinę, w zerowej minucie każdej godziny 0 * * * * @reboot uruchamiane przy starcie 5

Znaki specjalne: * dopuszcza wszystkie dozwolone dla danego pola wartości, np. * w polu dow uwzględnia wszystkie dni tygodnia / oznacza inkrementację wartości znajdującej się przed znakiem / o wartość znajdującą się za tym znakiem, np. 5/20 w polu hrs oznacza minuty: 5., 25., 45., służy do rozdzielenia kolejnych wartość, np. 1,2,3 w polu mon oznacza miesiące: styczeń, luty, marzec - służy do określania przedziału wartości, np. 1-5 w polu dow oznacza dni robocze (poniedziałek-piątek) L W oznacza ostatni, np. 3L w polu dow oznacza ostatnią środę danego miesiąca dopuszczalne jedynie w polu dom, używane do określenia najbliższego dnia roboczego (ang. weekday) dla zadanej daty, np. 10W w polu dom oznacza najbliższy dzień roboczy w pobliżu 10. dnia miesiąca, tj. jeśli 10. dniem danego miesiąca jest sobota, to wyrażenie to dopasuje się do 9. dnia miesiąca piątku # dopuszczalne jedynie w polu dow, po znaku # musi następować liczba z przedziału 1-5. Oznacza o który z kolei dzień tygodnia w danym miesiącu chodzi, np. 7#2 oznacza drugą niedzielę miesiąca 5.4 Przykłady definicji Pingowanie strony z przekazaniem wyjścia do pliku out.txt: co minutę * * * * * ping -n 1 google.com >> out.txt co dwie minuty */2 * * * * ping -n 1 google.com >> out.txt każdej soboty, o 2. w nocy 0 2 * * SAT ping -n 1 google.com >> out.txt każdego dnia roboczego, w godzinach 9. 18. 0 9-18 * * 1-5 ping -n 1 google.com >> out.txt 6

w południe, w miesiącach styczen-marzec, w co drugi poniedziałek w miesiącu 0 12 * JAN-MAR MON#2 ping -n 1 google.com >> out.txt 6 Zadania ćwiczeniowe 1. Ustaw aktualizację repozytoriów, w co drugą sobotę o północy. 2. Ustaw aktualizację pakietów i zależności, każdego dnia roboczego o godzinie 18:00. 3. Ustaw aktualizację informacji o pakietach i sprawdź poprawność, w miesiącach maj-lipiec raz dziennie o polnocy. 4. Ustaw codzienną synchronizację czasu z dowolnym serwerem. 5. Zaplanuj cotygodniową kopię danych katalogu /home do /backups/2012-05- 29.tgz (nazwa pliku to bieżąca data). 7