Planowanie zadań

Planowanie zadań to funkcjonalność, która pozwala użytkownikom systemu na wykonywanie określonych komend, zadań czy skryptów o zadanym, wybranym czasie w przyszłości. Wykonanie takiego zaplanowanego zadania może odbyć się tylko jeden raz ww przyszłości lub co pewien czas, okresowo o zadanej porze. Jednorazowe wykonywanie określonych zadań o zadanej porze w przyszłości dotyczy na ogół zadań, które do swojego wykonania potrzebują dużo zasobów komputera i w związku z tym wymagają małego obciążenia systemu. Z kolei zadania, które wykonywane są okresowo to wykonywanie kopii zapasowych, przycinanie logów, monitorowanie systemu czy usuwanie niechcianych pików z systemu.

Wykonywanie zaplanowanych zadań może być realizowane przez dwa demony: atd i crond. Atd służy do wykonywania zadań tylko jeden raz w przyszłości, crond wykonuje zadania okresowo o określonym przez użytkownika czasie. W czasie startu crond czyta pliki umieszczone w katalogu /var/spool/cron i /etc/cron.d i wczytuje je do pamięci aby móc później wykonać zadania określone w tych plikach. Demon ten skanuje pliki konfiguracyjne co pewien czas i aktualizuje zadania do wykonania, nie wraca jednak do pominiętych zadań. Atd w przeciwieństwie do crond jeżeli przegapi zadanie to wykonuje je następnego dnia o tej samej porze.

 

Kontrola dostępu.

Domyślnie wszyscy użytkownicy mogą korzystać z atd i crond, można jednak to kontrolować umieszczając określonych użytkowników w odpowiednich plikach w katalogu /etc. Atd używa plików at.allow i at.deny, crond używa plików cron.allow i cron.deny. Składnia plików jest identyczna, musimy tylko umieścić nazwy użytkowników w wybranych plikach, w każdej linii pliku jedna nazwa użytkownika. Root zawsze może korzystać z demonów, o których mowa, nie ważne czy jest umieszczony w tych plikach. Domyślnie plik deny jest założony w systemie i jest pusty, plik allow nie jest założony. Oznacza to pełen dostęp do korzystania z obu narzędzi. Tabela poniższa przedstawia różne kombinacje plików allow i deny i ich wpływ na dostęp do korzystania z narzędzi planowania zadań.

at.allow / cron.allow at.deny / cron.deny Znaczenie
Założony i zawiera wpisy Obecność pliku nie ma znaczenia Wszyscy użytkownicy umieszczeni w pliku allow mogą korzystać z narzędzi planowania zadań
Założony ale jest pusty Obecność pliku nie ma znaczenia Żaden użytkownik poza root nie może korzystać z narzędzi
Brak pliku Założony i zawiera wpisy Wszyscy użytkownicy inni niż umieszczeni w pliku deny mogą korzystać z narzędzi planowania zadań
Brak pliku Założony ale jest pusty Wszyscy użytkownicy mogą korzystać z narzędzi planowania zadań
Brak pliku Brak pliku Żaden użytkownik poza root nie może korzystać z narzędzi

Jeżeli jakiś użytkownik nie jest uprawniony do korzystania z at pojawia się komunikat:
You do not have permission to use at.

Jeżeli np. użytkownik user1 nie jest uprawniony do korzystania z cron pojawia się komunikat:
You (user1) are not allowed to use this program (crontab)
See crontab(1) for more information

W obu przykładowych przypadkach umieszczone został użytkownik user1 w plikach at.deny i cron.deny.

 

Plik log.

Wszystkie czynności wykonywane przez atd i crond logowane są w pliku /var/log/cron.  W logu umieszczane są takie informacje jak aktywność, nazwa hosta, właściciel, PID i komunikat. W pliku znajdują się także informacje o uruchomieniu czy wyłączeniu demona crond.

# cat /var/log/cron
Apr  2 03:43:01 centos run-parts(/etc/cron.daily)[11448]: finished logrotate
Apr  2 03:43:01 centos run-parts(/etc/cron.daily)[11426]: starting man-db.cron
Apr  2 03:43:12 centos run-parts(/etc/cron.daily)[11459]: finished man-db.cron
Apr  2 03:43:12 centos run-parts(/etc/cron.daily)[11426]: starting mlocate
Apr  2 03:43:13 centos run-parts(/etc/cron.daily)[11470]: finished mlocate
Apr  2 03:43:13 centos anacron[11062]: Job `cron.daily' terminated
Apr  2 03:43:13 centos anacron[11062]: Normal exit (1 job run)
Apr  2 03:50:01 centos CROND[11530]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Apr  2 04:00:01 centos CROND[11616]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Apr  2 04:01:01 centos CROND[11629]: (root) CMD (run-parts /etc/cron.hourly)

Leave a Reply

Your email address will not be published. Required fields are marked *