Korzystanie ze skryptów powłoki do automatyzacji zadań konserwacji systemu Linux - Część 4
- 2440
- 363
- Roland Sokół
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ęść 4Jeś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łokiTa 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.
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)
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 " |
W naszym RHEL 7 serwer (192.168.0.18), wygląda następująco:
Raport monitorowania serweraMoż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.
- « Jak zainstalować PHP 7 z Apache i MariaDB na Centos 7/Debian 8
- Jak kontrolować ruch internetowy za pomocą pamięci podręcznej Squid i routera Cisco w Linux »