Beküldte Broskó Gábor -
Fórum:
Sziasztok! Szeretnék ehhez a bash script-hez egy naplózást készíteni úgy, hogy ha lefuttatom a script fájlt, akkor automatikusan készítsen a kimenetről egy .txt fájlt. Első kérdésem, hogy lehet-e, a második, hogy hogyan. Köszönöm előre is.
Napló fájl készítése
Beküldte atime -
Értékelés:
Úgy gondolom felesleges köröket futsz. Szerintem a /var/log/apt/term.log fájl szerintem mindent tartalmaz arról, amit naplózni akarsz
Hát ööö
Beküldte T.István -
Értékelés:
Nem igazán tiszta a szkript tartalma és hogy pontosabban mi a cél?
Legfőképpen az utolsó sort nem értem valahogy:
A dpkg --get-selections | grep deinstall -rész készít egy listát az előző mentben eltávolított csomagokról, mindezt persze azután, hogy a
lefutott, hát nem tudom, hogy a clean, autoclean után lesz-e eredmény, miután még egy autoremove le lett futtatva, de lehet tévedek. Szerintem elég csak egy a clean-ból, ha a második kell, akkor legyen az, mert az megcsinálja amit az első csinálna, de log fájlokat is töröl, amit az első kihagy.
De ezt át kell gondolni, mert ezek törlik mindazokat a programokat, amik már nem érhetők el a tárolókban, lehet hogy nem jó ötlet, ha ezekre szükség van amúgy, és működnek.
Az awk paraméterezését nem tudom hogy gondoltad, meg így minek, ez szépen ki fogja írni a lista tartalmát, mintha ott sem lenne, tehát felesleges, ha nincs ott, akkor is ugyanaz történik. De gondlom, hogy valahol láttál ilyesmit, oszt fejből, vagy kimásolva, de nem jól, valahogy azt szeretted volna, hogy a dpgk listájából csak a csomagnevek maradjanak meg, nem az egész sor, másképpen a táblázatos listának csak az első oszlopa kell, erre tippelek. Ez esetben definiálni kell az awk-nak, hogy mire figyeljen, mi a táblázat szerkezet, mondjuk így:
Innen tudni fogja az awk, hogy a második oszlopban az van, hogy deinstall, oszt ebből az következik, hogy az első oszlop az az, amiben nincs ott, hogy deinstall. Erre gondoltál?
Minden kimenetet át lehet irányítani fájlba is a > fileneve.txt ill. >> fileneve.txt módon. Egy > létrehozza /felülírja a fileneve.txt-t, beleírja a kimenetet. A >> hozzáírja a fileneve.txt-be a kimenetet.
Tehát az első kimentendő kimenetnél > kerüljön használatra, az összes többinél >>.
Arra figyelj, hogy első sudo jelszót fog bekérni, oszt ez lehet fájlba lesz irányítva, lehet az elején el kell sütni egy parancsot sudo-val, amit nem kell fájlba irányítani.
És szerintem az apt-get autoclean után is kell egy
sor, de ezt szerintem egy próba eldönti.
Köszönöm szépen a segítséget.
Beküldte Broskó Gábor -
Értékelés:
Köszönöm szépen a segítséget. Igazából egy külföldi oldalon találtam ezt a rendszer takarítós részt, és valószínű, hogy nem jól értelmeztem. Elég kezdetleges a tudásom ebben a témában, illetve a script írásban is. Jelenleg magamtól próbálgatok tanulni, több-kevesebb sikerrel. De ráérek tanulni. :-) Köszönöm a javításokat. Ki fogom próbálni, amit javasoltatok. Jelentkezni fogok mire jutottam.
Hát ööö
Beküldte Broskó Gábor -
Értékelés:
Sziasztok. Megint sikerült gép elé kerülnöm. :-) Nem igazán tiszta előttem a kép. Mindig olvasok valamit, és ha megfog, vagy hasznosnak gondolom, akkor lementem aztán próbálgatom. Igazából szeretnék egy olyan script-et készíteni magamnak, amit telepítés után csak lefutattok és telepíti ami nekem kell, illetve törli azokat amik nem kellenek. Jelenleg itt tartok vele.(Valószínüleg ebben is van kivetni való :-)) https://paste.ee/p/RGGvh Itt jelenleg nem értem, hogy akkor az awk sor kellene vagy teljesen kilehet hagyni ezt a részt? /sudo aptitude purge `dpkg --get-selections | grep deinstall | awk '{print $1}'`/ Ha kilehet, akkor kihagyom. A kimenet mentését azért szeretném, hogy, ha esetleg valami nem jön össze, akkor megtudjam nézni, esetleg segítséget tudjak kérni. Viszont, ha erre sincs szükség, mert alapból lementi a rendszer, akkor annak csak örülök.
Ami még kérdés jelenleg számomra, hogy ha jól értelmeztem, akkor a kövekezőképpen kell megírni a kimenet mentését ".txt"-be? https://paste.ee/p/6qwqy Elnézést, de elég nehézkes a felfogásom. Köszönöm a segítséget.
Hát ööö
Beküldte T.István -
Értékelés:
sudo aptitude purge `dpkg --get-selections | grep deinstall | awk '{print $1}'`
Megjegyzem, érdemes konzistensnek maradni, ha mindenhol máshol apt-get van, akkor itt miért használnál aptitude-t? Mondjuk pont itt? Szkriptet akarsz, és grafikus intermezzót benne?
Tegyük fel ezt nem akarod, és a fenti parancssort értelmesen így kell megfogalmazni:
Vegyük akkor sorra:
dpkg -- get-selections - ez ad egy listát a telepítendőkről, az eltávolítandókról, írd be terminálba, nézd meg mit csinál!
A listából csak azok a sorok kellenek jelenleg, amikben szerepel, hogy deinstall. Ezeket kiszűrheted grep-el, pl.
dpkg --get-selections | grep deinstall -írd be terminálba, nézd meg mit csinál!
Csak azok a sorok lesznek megjelenítve, amikben szerepel a deinstall, a többi nem.
De minden sorban lesz egy csomagnév, és utána némi szünet és aztán ott lesz, hogy deinstall. Nem kell a teljes sor, csak a csomagnevek kellenek, Miért? Mert az apt-get purge-nak meg kell adni, hogy mi legyen kitakarítva. Felsorolást is meg lehet adni, de az apt-get purge nem fog találni olyan csomagot, aminek a neve deinstall, minden sorra ad egy hibaüzenetet.
Tehát:
Le kellene venni a sorokból a deinstall sztringet, amire pont jó az awk. Viszont ezt úgy kell meghívni, hogy tudja, az átadott listának két oszlopa van, egyikben van akármi, a másikban meg az van, hogy deinstall.
Úgy ahogy te elsőre megadtad, az awk minden sort egy oszlopnak kezel, azaz pont azt fogja visszaadni, amit az dpkg --get-selections | grep deinstall magában is visszaad, tehát mintha ott sem lenne, azaz ezért felesleges. Mármint koncepcionálisan ez történik, valójában ez a dolgok menete:
awk '$2 == "deinstall" {print $1}'
Két változót fog használni az awk, a másodikba kerül a felolvasott sorból az, ami "deiinstall". így az elsőbe minden ami nem deinstall, jelen esetben a csomag neve. Ezt kell átnyomni az apt-get purge -nek. A fentebb írt parancs tehát így működik..
Ami a szkiptedet illeti, gondold át a -y kapcsoló használatát. Mondjuk, ha kipróbálod, akkor erre úgy is rájössz.
Hát ööö
Beküldte Broskó Gábor -
Értékelés: