Zaawansowana administracja systemem operacyjnym GNU/Linux Troubleshooting Wykład: Mateusz Dampc, Aplitt Sp. z.o.o Twórca: Jakub Kuchta
Troubleshooting – obciążenie CPU top – podsumowanie procesów Load average: 1/5/15 minut % CPU: user/system Pamięć: free, used, buffered (cached) Priorytety procesów – nice Niceness przyjmuje wartość od -20 (najbardziej obciążający) do 19 (najmniej obciążający). Poprawiamy poleceniem: renice <priorytet> -p <pid_procesu> Uruchamiamy od razu na jakimś priorytecie: nice <priorytet> <polecenie>
Troubleshooting – obciążenie CPU htop – ładniejsze podsumowanie procesów yum install epel-release yum install htop
Troubleshooting – zarządzanie procesami ps – listowanie aktualnie działających procesów ps a wszystkie procesy nie-systemowe aktualnego użytkownika ps au wszystkie procesy nie-systemowe wszystkich użytkowników ps aux wszystkie procesy kill – wysyłanie sygnałów do procesów kill -<numer/nazwa sygnalu> <pid_procesu> SIGTERM (-15) zakończ pracę prawidłowo – domyślne działanie kill SIGKILL (-9) wymuś natychmiastowe zamknięcie
Troubleshooting – pamięć free – zajętość pamięci free w kilobajtach free –m w megabajtach free –g w gigabajtach total sumaryczna ilość pamięci used pamięć używana przez programy free pamięć nieprzydzielona shared pamięć współdzielona buffers/cache pamięć używana jako cache available pamięć dostępna do użycia przez programy Pamięć używana jako cache jest tak naprawdę wolna – „free” jest nieco mylące linuxatemyram.com
Troubleshooting – dyski, sieć iotop – obciążenie dysków ss – socket status Stan aktualnie otworzonych połączeń sieciowych i gniazd (socketów) plikowych
Logi systemowe Katalog /var/log journalctl boot.log log z ostatniego uruchomienia systemu cron log dla programu cron (cykliczne uruchamianie zadań) dmesg log z jądra systemu (kernela) – problemy sprzętowe/systemowe messages ogólne logi z daemonów secure logowania na konta, dostępy do sudo, SSH yum.log logi z menadżera pakietów wtmp zawiera dane do polecenia „last” dodatkowo podkatalogi np. httpd, mysql dla konkretnych usług journalctl przeglądanie logów z usług i systemu
Logi systemowe crontab – cykliczne uruchamianie polecenia crontab –l wyświetl crontaba aktualnego użytkownika crontab –e edytuj crontaba aktualnego użytkownika crontab –l –u <user> wyświetl crontaba innego <użytkownika> crontab –e –u <user> edytuj crontaba innego <użytkownika> min[0-59] godz[0-23] d[1-31] mc[1-12] dtyg[0-6] polecenie 30 2 * * * /bin/bash /usr/local/bin/skrypt.sh
Zadania na dziś Zainstaluj pakiety: epel-release, iotop, screen, htop. Znajdź dni i godziny, w których logowałeś się na konto roota (są co najmniej dwie metody). Co byś wpisał do crontaba użytkownika root, aby co minutę wpisywał tekst „test” do pliku /var/log/test.log? Zasymuluj obciążenie CPU (dowolną metodą, tylko jeden proces), a następnie przenice’uj proces na minimalny priorytet. Dlaczego obciążenie procesora nie spada do 0%? Znajdź sposób na sprawdzenie prędkości odczytów (w MB/s) na dysk (są co najmniej dwie metody). (na plus zapisy) Znajdź sposób na wykonanie polecenia kill (wysłania sygnału) używając nazwy procesu, a nie jego PID.`
Troubleshooting Podsumowanie, pytania? Za tydzień: Test