Valamikor régen olvastam, hogy a hatékony rendszergazda / mérnök egyik megkülönböztető jellemzője a lustaság. Először kissé ellentmondásosnak tűnt, de a szerző ezt követően elmagyarázta, miért:
ha a rendszergazda legtöbb idejét a problémák megoldásával és az ismétlődő feladatok elvégzésével tölti, akkor gyanítható, hogy nem jól csinálja a dolgokat. Más szóval, egy hatékony rendszergazdának / mérnöknek tervet kell kidolgoznia az ismétlődő feladatok elvégzésére a lehető legkevesebb akcióval, és előre kell látnia a problémákat a
például a 3. részben áttekintett eszközök - A rendszer tevékenységi jelentéseinek figyelése Linux Eszközkészletek használatával ennek a sorozatnak. Így, bár úgy tűnik, nem sokat tesz, ez azért van, mert feladatai nagy része megvan shell script segítségével gondoskodtak róla, erről fogunk beszélni bemutató.
Néhány szóval a shell script nem más, mint nem más, mint egy lépésről lépésre végrehajtott program egy shell, amely egy másik program, amely interfészréteget biztosít a Linux kernel és a vége között felhasználó.
Alapértelmezés szerint a felhasználói fiókokhoz használt héj RHEL 7 bash (/bin/bash). Ha részletes leírást és némi történelmi hátteret szeretne, hivatkozhat ezt a Wikipédia -cikket.
Ha többet szeretne megtudni a héj által nyújtott hatalmas funkciókról, érdemes megnézni a héját man oldal, amely PDF formátumban letölthető a (Bash parancsok). Ettől eltekintve feltételezzük, hogy ismeri a Linux parancsokat (ha nem, határozottan javaslom, hogy menjen át Útmutató kezdőktől a SysAdminig cikkben Tecmint.com eljárás előtt). Most kezdjük.
Kényelmünk érdekében hozzunk létre egy könyvtárat a shell parancsfájljaink tárolására:
# mkdir szkriptek. # cd szkriptek.
És nyisson meg egy új szöveges fájlt system_info.sh
a kívánt szövegszerkesztővel. Kezdjük azzal, hogy beszúrunk néhány megjegyzést a tetejére, és néhány parancsot utána:
#!/bin/bash # Mintaszkript az RHCE sorozat 4. részéhez írva. # Ez a szkript a következő rendszerinformációkat adja vissza: # -Hostname information: echo -e "\ e [31; 43m ***** HOSTNAME INFORMÁCIÓK***** \ e [0m " hostnamectl. visszhang "" # -Fájlrendszer lemezterület -felhasználása: echo -e "\ e [31; 43m *****FÁJLRENDSZER TÁRCSATÉR HASZNÁLATA***** \ e [0m " df -h. visszhang "" # -Ingyenes és használt memória a rendszerben: echo -e "\ e [31; 43m *****INGYENES és HASZNÁLT EMLÉK***** \ e [0m " ingyenes. visszhang "" # -A rendszer üzemideje és terhelése: echo -e "\ e [31; 43m *****A RENDSZER FELTÖLTÉSE ÉS TERHELÉSE***** \ e [0m " üzemidő. visszhang "" # -Bejelentkezett felhasználók: echo -e "\ e [31; 43m *****JELENLEG BEJELENTKEZŐ FELHASZNÁLÓK***** \ e [0m " WHO. visszhang "" # -A legjobb 5 folyamat a memóriahasználat tekintetében. echo -e "\ e [31; 43m *****TOP 5 EMLÉKFOGYASZTÓ FOLYAMAT***** \ e [0m " ps -eo%mem,%cpu, comm --sort = -%mem | fej -n 6. visszhang "" echo -e "\ e [1; 32 percKész. \ e [0m"
Ezután adja meg a szkript végrehajtási engedélyeit:
# chmod +x system_info.sh.
és futtasd:
./system_info.sh.
Vegye figyelembe, hogy az egyes szakaszok fejlécei színesben jelennek meg a jobb láthatóság érdekében:
Ezt a funkciót ez a parancs biztosítja:
echo -e "\ e [COLOR1; COLOR2m\ e [0m "
Ahol SZÍN1 és SZÍN2 az előtér és a háttérszínek (további információk és beállítások találhatók ebben a bejegyzésben a Arch Linux Wiki) és az a karakterlánc, amelyet színesben szeretne megjeleníteni.
Az automatizálható feladatok esetenként eltérőek lehetnek. Így nem tudjuk lefedni az összes lehetséges forgatókönyvet egyetlen cikkben, de bemutatunk három klasszikus feladatot, amelyek automatizálhatók a shell script használatával:
1) frissítse a helyi fájl adatbázist, 2) keresse meg (és alternatívaként törölje) a fájlokat 777 engedélyek, és 3) figyelmeztet, ha a fájlrendszer használata meghaladja a meghatározott korlátot.
Hozzunk létre egy nevű fájlt auto_tasks.sh
szkriptkönyvtárunkban a következő tartalommal:
#!/bin/bash # Szkript minta a feladatok automatizálásához: # -Frissítse a helyi fájl adatbázist: echo -e "\ e [4; 32mHELYI FÁJLADATBÁZIS FRISSÍTÉSE\ e [0m " frissítve b. ha [$? == 0 ]; majd echo "A helyi fájladatbázist helyesen frissítették." else echo "A helyi fájladatbázis nem volt megfelelően frissítve." fi. echo "" # -Fájlok keresése és / vagy törlése 777 jogosultsággal. echo -e "\ e [4; 32m777 ENGEDÉLYŰ FÁJLOK KERESÉSE\ e [0m " # Engedélyezze bármelyik opciót (megjegyzést fűz a másik sorhoz), de ne mindkettőt. # 1. lehetőség: Fájlok törlése megerősítés kérése nélkül. A find GNU verzióját feltételezi. #find -type f -perm 0777 -delete. # 2. lehetőség: Kérjen megerősítést a fájlok törlése előtt. Hordozhatóbb a rendszerek között. find -type f -perm 0777 -exec rm -i {} +; visszhang "" # -Riasztás, ha a fájlrendszer használata túllép egy meghatározott határértéket echo -e "\ e [4; 32mA FÁJLRENDSZER HASZNÁLATÁNAK ELLENŐRZÉSE\ e [0m " THRESHOLD = 30. sor olvasása közben; do # Ez a változó karakterláncként tárolja a fájlrendszer elérési útját FILESYSTEM = $ (echo $ line | awk '{print $ 1}') # This változó tárolja a használati százalékot (XX %) PERCENTAGE = $ (echo $ line | awk '{print $ 5}') # Használati százalék %nélkül jel. HASZNÁLAT = $ {PERCENTAGE%?}, Ha [$ USAGE -gt $ THRESHOLD]; majd echo "A $ FILESYSTEM fennmaradó szabad helye kritikusan alacsony. Használt: $ PERCENTAGE "fi. kész <Felhívjuk figyelmét, hogy a kettő között szóköz van
<
jeleket a forgatókönyv utolsó sorában.A Cron használata
Ha még egy lépést szeretne tenni a hatékonyság érdekében, akkor nem akar a számítógép előtt ülni, és manuálisan futtatni ezeket a szkripteket. Inkább használni fogja cron ütemezni kell a feladatok rendszeres futtatását, és az eredményeket e -mailben elküldi a címzettek előre meghatározott listájára, vagy elmentheti azokat egy fájlba, amely megtekinthető egy webböngészőn keresztül.
A következő szkript (filesystem_usage.sh) futtatja a jól ismertet df -h paranccsal formázza a kimenetet HTML táblába, és mentse el a report.html fájl:
#!/bin/bash. # Minta szkript, amely bemutatja a HTML jelentés létrehozását shell parancsfájl használatával. # Webcímtár. WEB_DIR =/var/www/html. # Egy kis CSS és táblázat elrendezés, hogy a jelentés egy kicsit szebb legyen. visszhang ""> $ WEB_DIR/report.html. # Tekintse meg a gazdagép nevét, és illessze be a html törzs tetejére. HOST = $ (gazdagépnév) echo "A fájlrendszer használata a gazdagép számára$ HOST
Utolsó frissítés: $ (dátum)
Fájlrendszer | Méret | % Használata |
---|---|---|
">> $ WEB_DIR/report.html. echo $ line | awk '{print $ 1}' >> $ WEB_DIR/report.html. visszhang " | ">> $ WEB_DIR/report.html. echo $ line | awk '{print $ 2}' >> $ WEB_DIR/report.html. visszhang " | ">> $ WEB_DIR/report.html. echo $ line | awk '{print $ 5}' >> $ WEB_DIR/report.html. visszhang " |