Korzystanie ze skryptów powłoki do automatyzacji zadań konserwacji systemu Linux - Część 4

Korzystanie ze skryptów powłoki do automatyzacji zadań konserwacji systemu Linux - Część 4

Jakiś czas temu przeczytałem, że jedną z wyróżniających się cech skutecznego administratora / inżyniera systemu jest lenistwo. Na początku wydawało się to trochę sprzeczne, ale autor następnie wyjaśnił, dlaczego:

Seria RHCE: Automatyzuj zadania konserwacji systemu Linux - Część 4

Jeśli sysadmin spędza większość swojego czasu na rozwiązywaniu problemów i wykonywania powtarzających się zadań, możesz podejrzewać, że nie robi rzeczy całkiem dobrze. Innymi słowy, skuteczny administrator / inżynier systemu powinien opracować plan wykonywania powtarzających się zadań z jak najwięcej działań w swojej części, i powinien przewidzieć problemy, używając,

Na przykład narzędzia sprawdzone w części 3 - Monitoruj raporty aktywności systemowej za pomocą linuków narzędzi z tej serii. Zatem, chociaż może nie wydawać się wiele, dzieje się tak, ponieważ większość jego obowiązków została zadbana przy pomocy skorupy, o czym będziemy mówić w tym samouczku.

Co to jest skrypt powłoki?

Kilka słów, skrypt powłoki jest niczym więcej i niczym innym jak programem wykonywanym krok po kroku przez powłokę, która jest kolejnym programem, który zapewnia warstwę interfejsu między jądrem Linux a użytkownikiem końcowym.

Domyślnie powłoka używana do kont użytkowników w RHEL 7 jest bash (/bin/bash). Jeśli chcesz szczegółowego opisu i jakiegoś historycznego pochodzenia, możesz zapoznać się z tym artykułem w Wikipedii.

Aby dowiedzieć się więcej o ogromnym zestawie funkcji dostarczonych przez tę powłokę, możesz sprawdzić jej Strona Man, który jest pobierany w formacie PDF na (polecenia bash). Poza tym zakłada się, że znasz polecenia Linuksa (jeśli nie, zdecydowanie radzę przejść przez przewodnik od nowicjuszy do artykułu Sysadmin w artykule Tecmint.com Przed kontynuowaniem). Teraz zacznijmy.

Pisanie skryptu do wyświetlania informacji systemowych

Dla naszej wygody stwórzmy katalog do przechowywania naszych skorupek:

# Skrypty Mkdir # Skrypty CD 

I otwórz nowy plik tekstowy o nazwie Informacja o systemie.cii z preferowanym edytorem tekstu. Zaczniemy od wstawienia kilku komentarzy na górze, a niektóre polecenia później:

#!/bin/bash # przykładowy skrypt napisany dla części 4 serii RHCE # Ten skrypt zwróci następujący zestaw informacji systemowych: # -hostname Informacje: echo -e "\ e [31; 43m ***** Informacje o nazwie hosta ***** \ e [0m „hostnamectl echo” „ # -file System System Disk Użycie: echo -e” \ e [31; 43m ***** Zastosowanie miejsca na dyskach systemu ***** \ e [0m "df -h echo" " # -free i używana pamięć w systemie: echo -e" \ e [31; 43m ***** Bezpłatna i używana pamięć ***** \ E [0M „Free Echo” „ # -System Time and Load: Echo -e” \ E [31; 43m ***** Czas aktualizacji systemu i obciążenie ***** \ E [0M „Uptime Echo” „ # -logged -in użytkowników: echo -e” \ e [31; 43m ***** Obecnie zalogowani użytkownicy ***** \ e [0m „Who echo” „ # -top 5 procesów, jeśli chodzi o użycie pamięci echo -e” \ e [31; 43m ***** 5 najlepszych procesów konsumpcyjnych pamięci ***** \ e [0m "ps -eo%mem,%CPU, comm - -sort = -%mem | head -n 6 echo" "echo -e" \ e [1; 32mdone.\ e [0m " 

Następnie podaj skrypt wykonaj uprawnienia:

# chmod +x system_info.cii 

I uruchom to:

./Informacja o systemie.cii 

Zauważ, że nagłówki każdej sekcji są pokazane w kolorze dla lepszej wizualizacji:

Serwer monitorujący skrypt powłoki

Ta funkcjonalność jest dostarczana przez to polecenie:

echo -e "\ e [Color1; Color2m\ e [0m " 

Gdzie Color1 I Color2 są odpowiednio kolorami pierwszego planu i tła (więcej informacji i opcji wyjaśniono w tym wpisie z Arch Linux Wiki) i to ciąg, który chcesz pokazać w kolorze.

Zadania automatyczne

Zadania, które może być konieczne zautomatyzowanie, mogą się różnić w zależności od sprawy. Zatem nie możemy omówić wszystkich możliwych scenariuszy w jednym artykule, ale przedstawimy trzy klasyczne zadania, które można zautomatyzować za pomocą scenariuszy Shell:

1) zaktualizuj lokalną bazę danych plików, 2) Znajdź (i alternatywnie usuń) pliki za pomocą 777 uprawnienia i 3) ostrzeżenie, gdy użycie systemu plików przewyższa określony limit.

Utwórzmy plik o nazwie auto_tasks.cii W naszym katalogu Scripts z następującą zawartością:

#!/bin/bash # przykładowy skrypt do automatyzacji zadań: # -Update Lokalna baza danych: echo -e "\ e [4; 32mAktualizacja lokalnej bazy danych plików\ e [0m "aktualizowanebb? == 0]; Następnie echo „Lokalna baza danych plików została poprawnie zaktualizowana.„Else Echo” Lokalna baza danych plików nie została poprawnie zaktualizowana.„Fi echo” ” # -find i / lub usuń pliki z 777 uprawnieniami. echo -e "\ e [4; 32mSzukam plików z 777 uprawnieniami\ e [0m " # Włącz dowolną opcję (skomentuj drugą linię), ale nie oba. # Opcja 1: Usuń pliki bez monitowania o potwierdzenie. Zakłada wersję Find GNU. #find -Type f -perm 0777 -Delete # Opcja 2: Zapytaj o potwierdzenie przed usunięciem plików. Bardziej przenośne w różnych systemach. Znajdź -Type f -perm 0777 -Exec rm -i  +; echo "" # -alert, gdy użycie systemu plików przewyższa zdefiniowaną echo limitu -e "\ e [4; 32mSprawdzanie użycia systemu plików\ e [0m "próg = 30 podczas odczytu linia; do # ta zmienna przechowuje ścieżkę systemu plików jako system plików String = $ (echo $ line | awk 'print $ $') # ta zmienna przechowuje procent użytkowania (xx% ) Procent = $ (echo $ line | awk 'print 5 $') # Użyj procent bez znaku %. Użycie = $ procent%?, jeśli [$ użytkowe -gt $ próg]; Następnie echo „Pozostała dostępna przestrzeń w $ FileSystem jest krytycznie niski. Użyte: $ procent „Fi gotowe < <(df -h --total | grep -vi filesystem) 

Należy pamiętać, że między nimi jest przestrzeń < Znaki w ostatnim wierszu skryptu.

Skrypt powłoki, aby znaleźć 777 uprawnień

Za pomocą Cron

Aby posunąć wydajność o krok dalej, nie będziesz chciał siedzieć przed komputerem i ręcznie uruchamiać te skrypty. Raczej użyjesz Cron Aby zaplanować te zadania, które należy uruchamiać okresowo i wysyła wyniki do predefiniowanej listy odbiorców za pośrednictwem poczty elektronicznej lub zapisz je do pliku, który można wyświetlić za pomocą przeglądarki internetowej.

Następujący skrypt (plik FileSystem_usage.sh) uruchomi znane df -h polecenie, sformatuj wyjście w tabeli HTML i zapisz je w raport.html plik:

#!/bin/bash # przykładowy skrypt, aby zademonstrować tworzenie raportu HTML za pomocą skryptu scripting # Web Directory Web_dir =/var/www/html # Mały układ CSS i tabeli, aby raport wyglądał trochę ładniejszy ”   .titulo font-size: 1EM; kolor biały; Tło:#0863CE; Wyściółka: 0.1em 0.2EM; tabela border-collapse: zawalenie się;  tabela, td, th border: 1px solid black;  "> $ Web_dir/raport.HTML # Wyświetl nazwę hosta i wstaw go u góry hosta ciała HTML = $ (nazwa hosta) echo „Zastosowanie systemu plików dla hosta $ Host
Ostatnio zaktualizowany: $ (data)

">> $ WEB_DIR/ROPORT.html # Odczytaj wyjście linii df -h po linii podczas linii odczytu; echo "">> $ WEB_DIR/ROPORT.html gotowe < <(df -h | grep -vi filesystem) echo "
System plików Rozmiar Używać %
">> $ WEB_DIR/ROPORT.HTML Echo $ line | awk 'drukuj 1 $' >> $ Web_DIR/Raport.html echo "">> $ WEB_DIR/ROPORT.HTML Echo $ line | awk 'drukuj 2 $' >> $ Web_dir/Report.html echo "">> $ WEB_DIR/ROPORT.HTML Echo $ line | awk 'drukuj 5 $' >> $ Web_DIR/Raport.html echo "
">> $ WEB_DIR/ROPORT.html

W naszym RHEL 7 serwer (192.168.0.18), wygląda następująco:

Raport monitorowania serwera

Możesz dodać do tego raportu tyle informacji, ile chcesz. Aby uruchomić skrypt codziennie o godz 13:30, Dodaj następujący wpis crontab:

30 13 * * */root/Scripts/FileSystem_usage.cii 

Streszczenie

Najprawdopodobniej pomyślisz o kilku innych zadaniach, które chcesz lub musisz zautomatyzować; Jak widać, użycie skryptów skorupowych znacznie upraszczy ten wysiłek. Daj nam znać, jeśli uważasz ten artykuł pomocny i nie wahaj się dodać własnych pomysłów lub komentarzy za pośrednictwem poniższego formularza.