Pred nejakým časom som čítal, že jednou z charakteristických vlastností efektívneho správcu / inžiniera systému je lenivosť. Spočiatku to vyzeralo trochu rozporuplne, ale autor potom vysvetlil, prečo:
Ak sysadmin trávi väčšinu svojho času riešením problémov a opakovaním úloh, môžete mať podozrenie, že veci nerobí celkom správne. Inými slovami, efektívny správca / inžinier systému by mal vypracovať plán na vykonávanie opakujúcich sa úloh s čo najmenším zásahom z jeho strany a mal by predvídať problémy pomocou,
napríklad nástroje preskúmané v časti 3 - Monitorujte zostavy aktivity systému pomocou sád nástrojov Linux tejto série. Napriek tomu, aj keď sa zdá, že toho veľa nerobí, je to kvôli väčšine jeho / jej povinností bolo postarané pomocou shell skriptovania, o ktorom si v tomto článku povieme návod.
Stručne povedané, shell skript nie je nič viac a nič menej ako program, ktorý sa vykonáva krok za krokom pomocou shellu, čo je ďalší program, ktorý poskytuje vrstvu rozhrania medzi jadrom Linuxu a koncom používateľ.
V predvolenom nastavení je shell používaný pre používateľské účty v RHEL 7 je bash (/bin/bash). Ak chcete podrobný popis a historické pozadie, môžete sa obrátiť na tento článok z Wikipédie.
Ak sa chcete dozvedieť viac o obrovskej množine funkcií, ktoré poskytuje tento shell, môžete sa pozrieť na jeho man stránka, ktoré je stiahnuté vo formáte PDF na (Bash príkazy). Okrem toho sa predpokladá, že ste oboznámení s príkazmi Linuxu (ak nie, dôrazne vám odporúčam, aby ste si ich prešli Sprievodca od nováčikov po SysAdmin článok v Tecmint.com pred pokračovaním). Teraz začnime.
Pre pohodlie vytvorme adresár na ukladanie našich skriptov shell:
# skriptov mkdir. # cd skripty.
A otvorte nový textový súbor s názvom system_info.sh
s vami preferovaným textovým editorom. Začneme vložením niekoľkých komentárov hore a potom niektorých príkazov:
#!/bin/bash # Ukážkový skript napísaný pre časť 4 série RHCE. # Tento skript vráti nasledujúcu sadu systémových informácií: # -Informácie o názve hostiteľa: echo -e "\ e [31; 43 m ***** INFORMÁCIE O HOSTNAME***** \ e [0 m " hostnamectl. ozvena "" # -Využitie miesta na disku na disku: echo -e "\ e [31; 43 m *****VYUŽÍVANIE DISKU PRIESTORU V SYSTÉME SOUBOROV***** \ e [0 m " df -h. ozvena "" # -Voľná a použitá pamäť v systéme: echo -e "\ e [31; 43 m *****ZADARMO A POUŽITÁ PAMÄŤ***** \ e [0 m " zadarmo. ozvena "" # -Výdrž systému a zaťaženie: echo -e "\ e [31; 43 m *****SYSTÉMOVÉ AKTUALIZÁCIE A ZAŤAŽENIE***** \ e [0 m " uptime. ozvena "" # -Prihlásení používatelia: echo -e "\ e [31; 43m *****MOMENTÁLNE PRIHLÁSENÍ UŽÍVATELIA***** \ e [0 m " SZO. ozvena "" # -Top 5 procesov, pokiaľ ide o využitie pamäte. echo -e "\ e [31; 43 m *****Najlepších 5 PROCESOV SPOTREBUJÚCICH PAMÄŤ***** \ e [0 m " ps -eo%mem,%cpu, comm -triedenie = -%mem | hlava -n 6. ozvena "" echo -e "\ e [1; 32mHotovo. \ e [0m"
Ďalej dajte skriptu povolenie na spustenie:
# chmod +x system_info.sh.
a spusti to:
./system_info.sh.
Všimnite si toho, že hlavičky každej sekcie sú pre lepšiu vizualizáciu zobrazené farebne:
Túto funkciu poskytuje tento príkaz:
echo -e "\ e [COLOR1; COLOR2m\ e [0 m "
Kde FARBA 1 a FARBA2 sú farby popredia a pozadia (viac informácií a možností je vysvetlených v tomto článku z Arch Linux Wiki) a je reťazec, ktorý chcete farebne zobraziť.
Úlohy, ktoré budete musieť automatizovať, sa môžu líšiť od prípadu k prípadu. Nemôžeme teda pokryť všetky možné scenáre v jednom článku, ale predstavíme tri klasické úlohy, ktoré je možné automatizovať pomocou shell skriptovania:
1) aktualizujte lokálnu databázu súborov, 2) vyhľadajte (a alternatívne odstráňte) súbory pomocou 777 povolenia a 3) upozornenie, keď používanie súborového systému prekročí definovaný limit.
Vytvorme súbor s názvom auto_tasks.sh
v našom adresári skriptov s nasledujúcim obsahom:
#!/bin/bash # Ukážkový skript na automatizáciu úloh: # -Aktualizácia lokálnej databázy súborov: echo -e "\ e [4; 32mAKTUALIZÁCIA DATABÁZY MIESTNYCH SÚBOROV\ e [0 m " aktualizované b. ak [$? == 0 ]; potom zopakujte „Lokálna databáza súborov bola aktualizovaná správne.“ else echo "Lokálna databáza súborov nebola aktualizovaná správne." fi. echo "" # -Nájdite a / alebo odstráňte súbory s povoleniami 777. echo -e "\ e [4; 32mHĽADÁME SÚBORY S 777 POVOLENIAMI\ e [0 m " # Zapnite buď možnosť (komentujte druhý riadok), ale nie obe. # Možnosť 1: Odstráňte súbory bez výzvy na potvrdenie. Predpokladá GNU verziu find. #find -type f -perm 0777 -delete. # Možnosť 2: Pred odstránením súborov požiadajte o potvrdenie. Prenosnejšie naprieč systémami. nájsť -typ f -perm 0777 -exec rm -i {} +; ozvena "" # -Upozornenie, keď používanie systému súborov prekročí definovaný limit echo -e "\ e [4; 32 mKONTROLA POUŽÍVANIA SYSTÉMU SÚBORU\ e [0 m " THRESHOLD = 30. pri čítaní riadku; do # Táto premenná uloží cestu k systému súborov ako reťazec FILESYSTEM = $ (echo $ line | awk '{print $ 1}') # This premenná ukladá percento použitia (XX %) PERCENTAGE = $ (echo $ line | awk '{print $ 5}') # Použiť percento bez % podpísať. USAGE = $ {PERCENTAGE%?}, Ak [$ USAGE -gt $ THRESHOLD]; potom zopakujte „Zostávajúci dostupný priestor v $ FILESYSTEM je kriticky nízky. Použité: $ PERCENTAGE “fi. hotovo <Upozorňujeme, že medzi nimi je medzera
<
znaky v poslednom riadku skriptu.Použitie Cron
Aby ste urobili efektivitu ešte o krok ďalej, nebudete chcieť sedieť pred počítačom a spúšťať tieto skripty ručne. Budete skôr používať cron naplánovať pravidelné vykonávanie týchto úloh a odosielať výsledky na vopred definovaný zoznam príjemcov e -mailom alebo ich uložiť do súboru, ktorý je možné zobraziť pomocou webového prehliadača.
Nasledujúci skript (filesystem_usage.sh) spustí známy df -h naformátujte výstup do tabuľky HTML a uložte ho do súboru report.html súbor:
#!/bin/bash. # Ukážkový skript na ukážku vytvorenia správy HTML pomocou skriptovania v shelli. # Webový adresár. WEB_DIR =/var/www/html. # Trochu CSS a rozloženia tabuľky, aby správa vyzerala o niečo krajšie. ozvena ""> $ WEB_DIR/report.html. # Zobrazte názov hostiteľa a vložte ho do hornej časti tela html. HOST = $ (názov hostiteľa) echo „Použitie súborového systému pre hostiteľa$ HOST
Naposledy aktualizovaný: $ (dátum)
Systém súborov | Veľkosť | Použiť % |
---|---|---|
">> $ WEB_DIR/report.html. echo $ riadok | awk '{print $ 1}' >> $ WEB_DIR/report.html. ozvena " | ">> $ WEB_DIR/report.html. echo $ riadok | awk '{print $ 2}' >> $ WEB_DIR/report.html. ozvena " | ">> $ WEB_DIR/report.html. echo $ riadok | awk '{print $ 5}' >> $ WEB_DIR/report.html. ozvena " |