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.