Üdvözöljük az ubuntu.hu oldalán

Itt megtalálhatja a rendszerrel, illetve a nyílt forráskódú alkalmazásokkal kapcsolatos információkat, érdekességeket. Csatlakozzon a beszélgetésekhez, blogoljon, segítse Ön is a közösséget. Jó fórumozást kívánunk!
Egyéb témákAsztali felhasználásBlogok

Shell script erőforráshasználat naplózásához

Két másik maratoni topik (vélhetően) értelmes tartalmának rövid összefoglalása ez.
Az volt a probléma, hogy örgecskedő gépen váratlan belassulások, megtorpanások esetleg lefagyások történtek, miközben a felhasználó úgy érzékelte, hogy ezek indokolatlanok, mivel bőven vannak még erőforrások a gépben.
Ennek ellenőrzésére, alátámasztására vagy megcáfolására írtam egy szkripet, ami a top kimenetét két féle rendezettséggel (CPU és %MEM), a sensors által mérhető hőmérsékleteket, és az iostat -x kimenetét teszi le egy szövegfájlba 2 másodpercenként.
Különböző kezdeti hibajavítások, és változtatgatások után a szkript itt van:
https://github.com/kovacslt/Resource-logger

Működése:
Simán elindítva terminálból, elkezdi a napló írását, és teszi ezt a terminál bezártáig, vagy egy ctrl-C megnyomásáig.
Paraméterekkel indítva más működést valósít meg, ezek rendre:
start - elindítja a naplózást, de egy háttérfolyamatban
stop - ha van háttérfolyamatban (vagy másik terminálban futó) naplózás, azt leállítja
install - létrehoz egy autostart bejegyzést saját magára, így a mikor a felhasználó bejelentkezik, a naplózás automatikusan elindul
uninstall - eltávolítja az autostart bejegyzést

Minden induláskor új naplófájl kezdődik, aminek a neve az aktuális időponttal kezdődő "reslog.txt", ami a felhasználó saját könyvtárának gyökerébe kerül. Tehát például ~/20231204-12:53:25reslog.txt.

Telepítésének egyik lehetséges módja:

wget -O resourcelogger.sh https://raw.githubusercontent.com/kovacslt/Resource-logger/main/resourcelogger.sh && chmod +x resourcelogger.sh && ./resourcelogger.sh install; ./resourcelogger.sh start

Magyarázat: a wget letölti az aktuális könyvtárba resourcelogger.sh néven. Ezután, ha ez sikeres volt, a chmod futtathatóvá teszi. Ezután a már futtatható szkriptet elindítjuk az "install" paraméterrel, amitől létrejön egy autostart bejegyzés, hogy a felhasználó következő bejelentkezésekor automatikusan induljon.
Végül, a "start" paraméterrel elindul a naplózás egy háttérfolyamatban.

Alapértelmezetten a napló hossza végtelen, amíg a naplózás fut, a naplófájl csak nőttön-nő.
Egy javaslat alapján van lehetőség a naplófájl méretének maximalizására: a szkript elején a MAXENTRIES változó értékét kell beállítani 0-nál nagyobb értékre.
Ekkor, ha a napló bejegyzéseinek száma elérte a maximális értéket, az újabb bejegyzés beírása után a legelejéről (a legrégebbi) bejegyzés törlődik.

Így ha például 1800-ra állítjuk, akkor a 2 másodperces ütem miatt épp egy óra alatt fogja elérni a maximális méretét: ezután nem nő tovább, mert minden beíráskor a legrégebbit törli.
Tehát mindig csak egy órányi adat lesz a logban.