Wyszukiwanie w witrynie

Seria RHCSA: Zarządzanie pakietami Yum, automatyzacja zadań za pomocą Cron i dzienniki systemu monitorowania - część 10


W tym artykule omówimy, jak instalować, aktualizować i usuwać pakiety w Red Hat Enterprise Linux 7. Omówimy także, jak zautomatyzować zadania za pomocą cron, a zakończymy ten przewodnik wyjaśniając, jak zlokalizować i interpretować pliki dzienników systemowych, skupiając się na nauczeniu Cię, dlaczego wszystkie te umiejętności są niezbędne dla każdego administratora systemu.

Zarządzanie pakietami za pośrednictwem Yum

Aby zainstalować pakiet wraz ze wszystkimi jego zależnościami, które nie są jeszcze zainstalowane, użyjesz:


yum -y install package_name(s)

Gdzie nazwy_pakietów reprezentują co najmniej jedną rzeczywistą nazwę pakietu.

Na przykład, aby zainstalować httpd i mlocate (w tej kolejności), wpisz.


yum -y install httpd mlocate

Uwaga: litera y w powyższym przykładzie omija monity o potwierdzenie wyświetlane przez yum przed faktycznym pobraniem i instalacją żądanych programów. Możesz to pominąć, jeśli chcesz.

Domyślnie yum zainstaluje pakiet z architekturą zgodną z architekturą systemu operacyjnego, chyba że zostanie to zastąpione przez dodanie architektury pakietu do jego nazwy.

Na przykład w systemie 64-bitowym yum install package zainstaluje wersję pakietu x86_64, natomiast yum install package.x86 (jeśli jest dostępny) zainstaluje wersję 32-bitową.

Może się zdarzyć, że będziesz chciał zainstalować pakiet, ale nie znasz jego dokładnej nazwy. Opcje przeszukaj wszystko lub szukaj umożliwiają przeszukiwanie aktualnie włączonych repozytoriów pod kątem określonego słowa kluczowego, odpowiednio w nazwie pakietu i/lub jego opisie.

Na przykład,


yum search log

przeszuka zainstalowane repozytoria w poszukiwaniu pakietów zawierających w nazwie i podsumowaniu słowo log, natomiast


yum search all log

będzie szukać tego samego słowa kluczowego również w opisie pakietu i polach url.

Gdy wyszukiwanie zwróci listę pakietów, przed instalacją możesz wyświetlić dalsze informacje o niektórych z nich. Wtedy właśnie przyda się opcja info:


yum info logwatch

Możesz regularnie sprawdzać dostępność aktualizacji za pomocą następującego polecenia:


yum check-update

Powyższe polecenie zwróci wszystkie zainstalowane pakiety, dla których dostępna jest aktualizacja. W przykładzie pokazanym na obrazku poniżej dostępna jest tylko aktualizacja rhel-7-server-rpms:

Następnie możesz zaktualizować ten pakiet sam za pomocą:


yum update rhel-7-server-rpms

Jeśli można zaktualizować kilka pakietów, yum update zaktualizuje je wszystkie na raz.

Co się stanie, jeśli znasz nazwę pliku wykonywalnego, np. ps2pdf, ale nie wiesz, który pakiet go udostępnia? Możesz dowiedzieć się za pomocą yum, co zapewnia „*/[plik wykonywalny] ”:


yum whatprovides “*/ps2pdf”

Teraz, jeśli chodzi o usunięcie pakietu, możesz to zrobić za pomocą yum usuń pakiet. Łatwe, co? To pokazuje, że yum jest kompletnym i potężnym menedżerem pakietów.


yum remove httpd

Przeczytaj także: 20 poleceń Yum do zarządzania zarządzaniem pakietami RHEL 7

Dobre, stare, zwykłe obroty

RPM (znany również jako Menedżer pakietów RPM lub pierwotnie Menedżer pakietów RedHat) może być również używany do instalowania lub aktualizowania pakietów, jeśli są one dostępne w formie samodzielnych pakiety .rpm.

Często jest używany z flagami -Uvh, aby wskazać, że powinien zainstalować pakiet, jeśli jeszcze nie istnieje, lub spróbować go zaktualizować, jeśli jest zainstalowany (-U), tworząc szczegółowe wyjście (-v) i pasek postępu ze znakami skrótu (-h) podczas wykonywania operacji. Na przykład,


rpm -Uvh package.rpm

Innym typowym zastosowaniem rpm jest utworzenie listy aktualnie zainstalowanych pakietów za pomocą kodu >rpm -qa (skrót od query all):


rpm -qa

Przeczytaj także: 20 poleceń RPM do instalowania pakietów w RHEL 7

Planowanie zadań przy użyciu Cron

Linux i inne systemy operacyjne podobne do Uniksa zawierają narzędzie o nazwie cron, które pozwala zaplanować okresowe uruchamianie zadań (tj. poleceń lub skryptów powłoki). Cron co minutę sprawdza katalog /var/spool/cron pod kątem plików, których nazwy pochodzą od kont w /etc/passwd.

Podczas wykonywania poleceń wszelkie dane wyjściowe są wysyłane pocztą do właściciela crontab (lub do użytkownika określonego w zmiennej środowiskowej MAILTO w pliku /etc/crontab, jeśli istnieje).

Pliki Crontab (które są tworzone przez wpisanie crontab -e i naciśnięcie Enter) mają następujący format:

Tak więc, jeśli chcemy aktualizować lokalną bazę danych plików (która jest używana przez zlokalizowanie do wyszukiwania plików według nazwy lub wzorca) co drugi dzień miesiąca o 2:15, musimy dodać następujące Wpis crontab:


15 02 2 * * /bin/updatedb

Powyższy wpis crontab brzmi: „Uruchom /bin/updatedb drugiego dnia miesiąca, w każdym miesiącu roku, niezależnie od dnia tygodnia, o 2:15”. Jestem pewien, że już się domyśliłeś, symbol gwiazdy jest używany jako znak wieloznaczny.

Po dodaniu zadania cron możesz zobaczyć, że plik o nazwie root został dodany w /var/spool/cron, jak wspomnieliśmy wcześniej. Plik ten zawiera listę wszystkich zadań, które powinien uruchomić demon crond:


ls -l /var/spool/cron

Na powyższym obrazku crontab bieżącego użytkownika można wyświetlić za pomocą cat /var/spool/cron/root lub


crontab -l

Jeśli chcesz uruchomić zadanie w bardziej szczegółowy sposób (na przykład dwa razy dziennie lub trzy razy w miesiącu), cron również może Ci w tym pomóc.

Na przykład, aby uruchomić /my/script 1. i 15. każdego miesiąca i wysłać dane wyjściowe do /dev/null, możesz dodaj dwa wpisy crontab w następujący sposób:


01 00 1 * * /myscript > /dev/null 2>&1
01 00 15 * * /my/script > /dev/null 2>&1

Aby jednak zadanie było łatwiejsze w utrzymaniu, możesz połączyć oba wpisy w jeden:


01 00 1,15 * *  /my/script > /dev/null 2>&1

Wzorując się na poprzednim przykładzie, możemy uruchamiać /my/other/script o 1:30 pierwszego dnia miesiąca co trzy miesiące:


30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1

Kiedy jednak musisz powtarzać określone zadanie co „x” minuty, godziny, dni lub miesiące, możesz podzielić właściwą pozycję przez żądaną częstotliwość. Poniższy wpis crontab ma dokładnie takie samo znaczenie jak poprzedni:


30 01 1 */3 * /my/other/script > /dev/null 2>&1

A może potrzebujesz na przykład uruchomić określone zadanie ze stałą częstotliwością lub po uruchomieniu systemu. Zamiast pięciu pól możesz użyć jednego z poniższych ciągów, aby wskazać dokładny czas uruchomienia zadania:


@reboot    	Run when the system boots.
@yearly    	Run once a year, same as 00 00 1 1 *.
@monthly   	Run once a month, same as 00 00 1 * *.
@weekly    	Run once a week, same as 00 00 * * 0.
@daily     	Run once a day, same as 00 00 * * *.
@hourly    	Run once an hour, same as 00 * * * *.

Przeczytaj także: 11 poleceń do planowania zadań Cron w RHEL 7

Lokalizowanie i sprawdzanie dzienników

Dzienniki systemowe znajdują się (i są obracane) w katalogu /var/log. Zgodnie ze standardem Linux Filesystem Hierarchy Standard, ten katalog zawiera różne pliki dziennika, które są zapisywane w nim lub w odpowiednim podkatalogu (takim jak audit, httpd lub samba na obrazku poniżej) przez odpowiednie demony podczas działania systemu:


ls /var/log

Inne interesujące logi to dmesg (zawiera wszystkie wiadomości z bufora pierścieniowego jądra), secure (rejestruje próby połączeń wymagające uwierzytelnienia użytkownika), Messages (komunikaty ogólnosystemowe) i wtmp (zapisy wszystkich logowań i wylogowań użytkowników).

Dzienniki są bardzo ważne, ponieważ umożliwiają wgląd w to, co dzieje się w systemie przez cały czas i co wydarzyło się w przeszłości. Stanowią bezcenne narzędzie do rozwiązywania problemów i monitorowania serwera Linux, dlatego często są używane z poleceniem tail -f do wyświetlania zdarzeń w czasie rzeczywistym, w miarę ich występowania i rejestrowania w dzienniku.

Na przykład, jeśli chcesz wyświetlić zdarzenia związane z jądrem, wpisz następujące polecenie:


tail -f /var/log/dmesg

To samo, jeśli chcesz zobaczyć dostęp do swojego serwera WWW:


tail -f /var/log/httpd/access.log

Streszczenie

Jeśli wiesz, jak sprawnie zarządzać pakietami, planować zadania i gdzie szukać informacji o bieżącym i przeszłym działaniu swojego systemu, możesz mieć pewność, że nie spotkasz się zbyt często z niespodziankami. Mam nadzieję, że ten artykuł pomógł Ci zdobyć lub odświeżyć wiedzę na temat tych podstawowych umiejętności.

Jeśli masz jakieś pytania lub uwagi, nie wahaj się z nami skontaktować, korzystając z poniższego formularza kontaktowego.