Takarítsunk!

Takarítás Linux alatl
Takarítás Linux alatt

Bár már elég sok szó esett a Linux rendszer karbantartásról, most egy összefoglalót írok. Miért? Mert jön a félév, ilyenkor több gépet kell rendbe tennem, és összeszedtem azokat a pontokat melyeket meg kell csinálni. Ha pedig összeszedtem, akkor le is írom, hátha valakinek hasznos lesz. Most kifejezetten az Arch Linux parancsait helyezem előtérbe, így főleg az Arch-osoknak lesz “kényelmes” a téma, de más Linux rendszeren pont így működik, csak a parancs és a paraméter más. Egy aktívan hasznát gép egy idő után tele lesz szeméttel, felesleges dolgokkal, ottmaradt fájlokkal, és már nem szükséges adatállománnyal. Ez nem szép, káoszt okoz, és a működést is zavarhatja.

A rendrakást én többfelé osztottam el, és lehet, hogy valamelyik téged nem érint. Mivel próbálom a karitatív, azaz ingyenesen karbantartandó gépekre fordított időt csökkenteni, így egy sablont állítottam fel, aminek a nagy része scriptesíthető. Ezt a részt érdemes átgondolni és esetleg egy minimális scriptet összedobni ehhez. Ami gyorsítja a munkát és nem is marad ki semmi.

Felesleges adatok törlése Linux rendszerből

Általános feladat, amit mindenkinek érdemes megtenni. Ezt két lépésben szoktam meglépni. Az első a felesleges fájlok, doksik, letöltések, filmek, ideiglenes munkaállományok (pld. a videóknak a munkaállományai) törlése. Meglepően sok olyan fájl van egy sokat használt gépen, amit akkor, amikor létrehoztunk, vagy letöltöttünk fontosnak gondoltunk, de már nem az. Ez elég nehézkes feladat, ha káoszban tartod a gépedet, és nem rendben. Én így a második lépésnek a tárolási rendszert szervezését ajánlom. Szervezd meg úgy az adattárolást, hogy mindennek legyen helye. Nem hiába van Videók, Zene, Dokumentumok stb. könyvtár már telepítéskor. Ha ezeket normálisan, rendszerezésre használod, akkor már az előbbi takarítási művelet sem lesz nehéz. Én pld. az összes letöltő programot úgy állítom be, hogy az a Letöltés mappába, külön könyvtárakba kerüljön. Itt is, mint sok egyéb programnál már a telepítéskor be kell állítani a célkönyvtárat, hogy megfelelő helyre rakja a kész doksikat, fájlokat, vagy a letöltést. A legtöbb program öntevékenyen szeret létrehozni a /home könyvtárban almappát, amibe bizony ő majd rakosgatja a kész dolgokat. Ez nem jó! Egyrészt egy idő után a home (azaz az otthonod!) kész káosz lesz, másrészt a következő lépés egy torúra lesz.

Adatmentés megszervezése

Az, hogy Te mivel és hogyan mented az adataidat az mindegy. Én a Lucky-t használom. Egyszerű, és a cron-ba írja az elvégzendő feladatokat.

Ha az előbbi lépést, a szervezést megtetted, akkor már egyszerű a mentési rendszer összerakása: a doksik, azaz a produktumaid egy könyvtárban, annak az alkönyvtárában vannak. Így „csak” ezt az egy könyvtárat kell megadni a doksik mentéséhez. Majd végiggondolni azt, hogy mit is akarsz menteni még. Nekem ilyen a home alatti /bin könyvtár, amiben a saját scriptjeimet tartom, a .config alatti pár olyan könyvtár, amiben fontos és testreszabott beállítások vannak. Ezt egy macerás munka, nem is lesz meg egyszerre, mert mindig lesz olyan, amit még beleveszel a mentésbe, mert sajnálnád ha elveszne…

Pontosan egyszer kell összeállítani a mentési folyamatot, és soha többé nem lesz vele gondod. Megéri?

Ha letesztelted a mentési folyamatot, és rend is van a doksijaid közt, akkor jöhet a takarítása.

Arch Linux rendszerszintű takarítás

Itt már kifejezetten azokat a műveleteket folytatjuk le, melyekkel a rendszeredet teheted tisztábbá. Bár ha egyéb gond nincs, akkor ezzel nem lesz lényegesen gyorsabb a rendszer, és nem érzel különösebb eredményt, de érdemes lesz átgondolni a következőket.

Csak az legyen a Linux rendszeredben, ami kell!

A felesleges programok eltávolítása. Amit soha nem használsz az felesleges a gépeden! Bár a mai tárhelyek nagyok, és nem jelent gondot a hatféle képnézegető, és a tízféle fájlkezelő együttese sem, de… Rend a lelke mindennek, és a frissítési folyamat is gyorsabb, ha kevesebb programot kell frissíteni. Ezt érdemes megtenni elsőnek. Én a lehető legegyszerűbben oldom meg. A start menüben végignézem, hogy mi nem kell, és leszedem őket a grafikus programmal. Majd elhatározom, hogy ha felraktam tesztelni programot, akkor ha nem kell azonnal leszedem. Ez viszonylag gyors művelet, ha egy alulról építkező Arch Linuxot használsz, pld. a MagyArch terjesztést.

Rendszerfrissítés a takarítás első lépése!

Frissítsd fel a rendszeredet. Így a lehető legfrissebb Arch Linux lesz a gépeden. Ez a parancssorban egy, kettő vagy három vagy maximum pár sor! Nálam kettő. Hm… miért is? Hiszen egy lépésben lefrissíti az adatbázist és frissíti a rendszert! No és a flatpak csomagok? Igen, nem árt ha legalább egy flatpak csomagot tettél fel, azt is frissíteni!

Ezt scriptesíteni tudod? Igen!

# yay rendszerfissítés
yay -Syu --noconfirm

# Flatpak fissítés
flatpak update

Átmeneti tárhely tisztítása Arch rendszene.

Ahogy azt tudjuk (ha nem, akkor az Arch Linux oldalt és a videókat nézd meg) az Arch egy olyan Linux, ami szereti a letöltött csomagokat jól bespájzolni, és azokat őrizgetni. 
Ennek a /var/cache/pacman/pkg/ mappában vannak, és a mappának a mérete egyre nagyobb lesz. Ha nem tudsz erről, akkor több tíz giga is lehet! Ennek az ürítésére több megoldás van, az egyik egy durva, és senkinek nem ajánlom: simán kitörlöd a mappát. Az Arch Linux egy fejlett csomagkezeléssel rendelkező rendszer, az ilyen durva beavatkozásra nincs szükség! Nagy gondot nem okoz, de azért próbáljunk meg Linuxul gondolkodni, és amire van gyári jó megoldás, arra azt használjuk.

Két út lehetséges. Az egyik egy viszonylag egyszerű, de nem jól skálázható megoldás.

A leggyorsabb, bár nem igazán ideális megoldás a

pacman -Sc vagy a
yay -Sc

Esetleg a -Scc kapcsoló használata.

Az első az összes olyan program letöltött csomagját, forráskódját stb. leszedi amit feltettél, de el is távolítottál a rendszeredből. A második, a -Scc pedig a telepített programok telepítő csomagjait, forrásait is leszedi. Durva, de eredményes megoldás. Komolyabb problémát nem okoz, de van ennél jobb megoldás is.

A jól skálázható takarítás eszköze a paccache:

paccache -rk x amit akarsz meghagyni 2…5, én a -rk 2 megoldást jónak találom. Így kitisztítottad a megfelelő mélységig az átmeneti tárolót, és csak az maradt meg, amit akartál.

Igencsak sok helyet felszabadíthatsz, ha régebbi rendszert pucolsz ki ezzel! Figyelj rá, ez nem takarítja ki a yay használatával keletkezett átmeneti fájlokat!!!

Ezt is felvehetjük a scriptbe! Ha semmi fennakadás nincs, nem kapsz hibajelet, akkor eddig automatikusan le fog futni a script! Bár futtathatod ezt a a parancsot automatikusan, de én úgy gondoltam, hogy a scriptembe teszem. Így akkor fut le, és végzi el a faladatát, amikor én azt futtatom, azaz rendszerfrissítéskor.

# Átmeneti tárhely rendberakása
paccache -rk 2

Árva, már nem kellő függőségek takarítása:

Már az Arch csomagkezelése nagyon intelligens, és nem hagy sok felesleges függőséget, de nem árt, ha ezeket is ellenőrzöd. A következő megoldás nagyon jó:

pacman -Rns $(pacman -Qtdq)

ismerős lehet, volt róla szó. Na és még mit kell megtenni? A flatpak is hasonlóképp hagyhat (hagy is, nem is kevés) „árva” csomagot. Ezt is szedjük már le, ha itt vagyunk!

# Árva csomagok
pacman -Rns $(pacman -Qtdq)

# Flatpak árvák
flatpak uninstall --unused

Ezzel az Arch Linuxunkat kipucoltuk. Hogy neked mennyi tárhelyet szabadított fel, az változó lehet.

Tisztítsuk meg a gyorsítótárat a home könyvtárban

Ez egy rejtett könyvtár a home/laci mappában. Értelemszerűen a saját felhasználó home könyvtáradban keresd: .cache néven.

Nézzük meg a méretét:

du -sh /home/laci/.cache

504M /home/laci/.cache

Hm… ez egy tegnap felrakott, alig használt rendszer! Kicsit sok, és illene, hogy a programok maguk után rendet tegyenek! OK, a yay is ezt használja átmeneti tárolónak, és volt pár felrakott programom. De nem gond, ezt törölni kell.

A

rm -r /home/laci/.cache

teljesen megfelel.

Szuper! Ez scriptesíthető? Az.

Távolítsuk el a régi konfigurációs fájlokat

Ez már egy nagyobb feladat. A legtöbb program, illetve Linux rendszer úgy gondolja, hogy ha én leszedek egy programot, akkor illő, hogy a konfigurációs fájlok azok megmaradjanak. Ha újra felrakom, akkor ugyanazok a beállításokkal induljon. Hogy ez jó, vagy az egyik legidegesítőbb megoldása a rendszernek, azt mindenki döntse el maga. Bár sokféle megoldással találkoztam, de a legjobb a manuális. Ezek a fájlok, könyvtárak a saját könyvtáradban a .config mappában, vagy a  .local/share/ mappában vannak. Nincs más, mint csinálsz egy mentést ezekről (biztos, ami biztos) és végignézed a mappákat. Ha olyan nevű mappa van, amilyen programot leszedtél, akkor azt törlöd. Uncsi? Az. Sok helyet felszabadítasz? Nem. De alapvetően egy jobb, átláthatóbb rendszered lesz.

Ez nem oldható meg scripttel! Így jobban járok, ha nem engedem felhalmozódni a felesleges könyvtárakat és beállító fájlokat a program törlések után.

A következő művelet már egy sokkal nagyobb odafigyelést kívánó lesz.

Duplikátumok, üres könyvtárak és törött linkek törlése

Az egyik legfeleslegesebb, és sok helyet elfoglaló dolog a gépeden a duplikátumok. Azaz aznos fájlok, de más helyen, vagy más néven. Ha nagy lelkesedésemben letöltök pld. egy Arch Linux csomagot egy helyről, de duplán, triplán kattintok a letöltés gombra, mert nem indul el egyszázad másodperc alatt, akkor az fajl.kit, fajl(1).kit és a többi néven jön le. Ami felesleges, A legtöbbször ez bizony csak a helyet foglalja. Az ilyen és hasonló duplikátumok ténylegesen feleslegesen foglalnak el helyet. Az üres könyvtárak, törött linkek helyfoglalása nem nagy, de a rendszered szebb lesz, ha nincs feleslegesen üres mappa, és nem kattogtatsz a törött linkekre. OK, de mivel? Van egy kis program, ami esetleg egy külön cikket is megér: rmlint. Telepítés után előbb olvas el a helpet, ne indítsd el. Bár nem fog semmit törölni, de jobb, ha alapismereteket szerzel vele, és teszteled. A program megkeresi a törött linkeket, az üres könyvtárakat és a duplikátumokat, majd azokat kilistázza, és készít egy scriptet, amivel törölni tudod ezeket.

Én előbb lecsatolom az összes olyan adathordozót, amin a mentések vannak, mert kissé kényelmetlen ha több tízezer fájlt felsorol, mint duplikátum, csak azért mert az egy adatmentési, vagy tükrözési adathordozón van. Az első próbálkozáskor kissé ijesztő volt, hogy fut a terminálban a szöveg, és ott van a rm elérésiút/fájlneve… De azt tudni kell, hogy nem töröl az első körben, egy külön scriptet kell indítani, és az is rákérdez, hogy mit is akarsz valójában.

Majd megadom a könyvtárat, amit takarítani kell. Ne indítsd könyvtár megadás nélkül, mert az egész gépedet elkezdi vizsgálni, ami a mentések stb. miatt csak feleslegesen sok találatot ad.

Példának nagyon jó lehet valami ilyen:

rmlint /home/laci/Dokumentumok

Futás után valami ilyent látsz:

…….
ls ‘/home/laci/Dokumentumok/Doksik/Linux_archive/Magyarch-bspwm.pdf’
rm ‘/home/laci/Dokumentumok/Doksik/Linux_archive/Magyarch-bspwm-copy2.pdf’
ls ‘/home/laci/Dokumentumok/Doksik/Ado/Ado_2017_évi/17SZJA_kitoltesi_utmutato.pdf’
rm ‘/home/laci/Dokumentumok/Doksik/Forex/Oldies/Vegyes régi/PIipkoho AutoTrail 1.2/Ado_3782836640814/Ado_2017_évi/17SZJA_kitoltesi_utmutato.pdf’
==> Note: Please use the saved script below for removal, not the above output.
==> In total 1742 files, whereof 145 are duplicates in 132 groups.
==> This equals 9,74 MB of duplicates which could be removed.
==> 53 other suspicious item(s) found, which may vary in size.
==> Scanning took in total 0,140s.
Wrote a sh file to: /home/laci/rmlint.sh
Wrote a json file to: /home/laci/rmlint.json

A felsorolás hosszú lehet, de lényeg az összegzés, és az utolsó két sor. Létrehoz egy scriptet /home/laci/rmlint.sh néven és ha azt futtatod, akkor letörli a kijelölt fájlokat, vagy amit te kiválasztasz. A script elején (és a futáskor is kiírja) nézd át a kapcsolókat! Igen jól szabályozható a futása.

Első lépésben érdemes végignézni a listát, majd ha vannak olyan duplikátumok, amik a rossz szervezés miatt duplikátumok azokat érdemes megszüntetni. Ilyen volt nekem a digitális számlák halmaza, amiket egyrészt az adózásnál, másrészt az adott projektnél, harmadrészt a számlák közt is tároltam. Bőven elég egy helyen tartani ezeket, plusz persze az adatmentésekben. Így ezeket már nem másolatban, hanem átlinkelt könyvtárakban tartom, ami harmadára csökkentette a helyfoglalást, anélkül, hogy a kényelem sérült volna. Rendezettebb lesz a géped.

Majd újra futtatni a parancsot, és a kapott scriptet átnézni, ha valóban vannak olyan duplikátumok, melyek fontosak több példányban, akkor azt ki kell töröli a listából.

Hasonlóképp érdemes a /home könyvtárat átnézni, mert sok esetben programok hagynak maguk mögött jó pár üres könyvtárat. Itt figyelj csak az üres könyvtár, törött link törlését végezd el, mert a duplikátumokat csak kiemelt figyelemmel töröld.

Ha valóban kiismerted a programot már egy lépésben a /home könyvtáradat is átnézetheted, és kellő odafigyeléssel gyorsan megszabadulhatsz a duplikátumoktól.

Ez is scriptesíthető, megfelelő odafigyeléssel.

Amiről már volt szó, de elég fontos téma:

A naplófájlok rendbetétele:

Két megoldás van. Az egyik a konfigurálás, ami nem túl bonyolult feladat, vagy a kézi, rendszeres karbantartás.

Két egyszerű paranccsal már nagyban hozzájárulhatsz a méretek karbantartásához:

sudo journalctl --vacuum-size=50M

sudo journalctl --vacuum-time=4weeks

A fenti két sor szerintem egyértelmű. Amit érdemes figyelembe venni, hogy ahány Arch disztribúció, annyi szokás. Van ahol már előre bekonfigurálták a journalctl-t. Esetleg semmi hatása nincs ezeknek, mert kisebb maximális méretet, vagy rövidebb időt szabtak meg. Így értelemszerűen nem kell ezzel törődni, ha a disztribútorod szigorú rendet tart a journalctl terén.

A feladat itt is scriptesíthető, vagy egy kis konfigurálással megoldható a kordában tartott naplózás.

Egyéb tisztogatás

Futtassunk olyan valamilyen általános takarító programot, ami leveszi a vállunkról a felesleges munkát.

Én egyet bemutattam, érdemes kipróbálni: bleachbit.

Bár elméletileg a bleachbit-et futtathatjuk egy profil magadásával parancssorból is, de én szeretem magát a grafikus programot indítani. Előfordulhat, hogy új, általa ismert, és takarítandó program is felkerül, ami nincs benne a profilban…

Ennyi. Gyakorlatilag az alábbi részek egy sima scriptben felsorolva már gyorsan, és kimaradt lépés nélkül elvégezhetők:

Csomagfrissítés
Flatpak frissítés
Arch átmeneti tároló takarítása
Arch árva csomagok leszedése
Flatpak árva csomagok leszedése
A hazai .cache takarítása
Duplikátumok, üres könyvtárak, és törött linkek
A journalctl tisztítása
Bleachbit

A cikkben foglaltakat 2020. júniusában teszteltem, Arch Linux alatt.

Related Posts