• Rezultati Niso Bili Najdeni

Kot smo ˇze omenili, je osnovna ideja aplikacije ta, da sistemskemu admi-nistratorju poenostavimo opravljanje rednih preprostih, a pomembnih

opra-30 Denis Oblak

Slika 3.3: Izgled poroˇcila

vil, zdruˇzenih v en paket, in da deluje na veˇcini distribucij. Uporabili smo osnovne ukaze Linuxa brez namestitve dodatnih orodij in za izvajanje teh je bila primerna uporaba skript bash.

Analiza sistema

Pri analizi sistema se v ozadju izvedejo ukazi programske opreme GNU in po-sebni ukazi za upravljanje s programskimi paketi, jedri in jezikovnimi paketi.

Osnovne funkcionalnosti lahko razdelimo glede na to, kateri ukaz uporabimo.

Funkcionalnosti, ki uporabljajo ukaze programske opreme GNU, so nave-dene v nadaljevanju.

Uporaba ukaza find Ukaz find je resniˇcno moˇcan za iskanje po datoteˇcnem sistemu. Uporabili smo ga za iskanje zaˇcasnih datotek: iskali smo po razliˇcnih delih imena in z uporabo metaznakov. Stare dnevniˇske dato-teke poiˇsˇcemo hkrati po imenu in lokaciji, saj vemo, da se nahajajo v mapi /var/log. Z datumom zadnje uporabe smo si pomagali pri iska-nju starih datotek. Za iskanje praznih datotek smo uporabili parameter -size ukaza find, ki smo ga nastavili na 0. V veˇcini primerov smo upo-rabili parameter ukaza za iskanje v globino. Vsaka funkcionalnost ima svojo funkcijo z najveˇc tremi vhodnimi parametri, od katerih sta dva

Diplomska naloga 31 obvezna. Prvi je pot in ime za datoteko, kamor se vpiˇse rezultat iskanja pri analizi in se uporabi za izpis rezultata na zaslonu. Drugi je pot in ime datoteke, v katero se zapiˇse seznam datotek, ki smo jih naˇsli glede na izbrano operacijo. Zadnji parameter je odvisen od operacije in pove, kje se bo iskalo datoteke, ˇce pot ni vnaprej doloˇcena (npr. /var/log za dnevniˇske datoteke). Kompleksnejˇsi je primer uporabe iskanja pod-vojenih datotek. Ukaz, ki smo ga pri tem uporabili, lahko vidimo v kodi 3.1:

Koda 3.1: Iskanje podvojenih datotek.

$ f i n d path −not −empty −type f −p r i n t f ”%s\n” | s o r t −rn | u n i q −d | x a r g s −I{} −n1 f i n d path − type f −s i z e {}c −p r i n t 0 | x a r g s −0 md5sum |

s o r t | u n i q −w32 −−a l l−r e p e a t e d=s e p a r a t e | c u t − f 3−100 −d ’ ’ | x a r g s du −c

Najprej poiˇsˇcemo neprazne datoteke, izpiˇsemo njihove velikosti, jih ure-dimo in pokaˇzemo samo podvojene. Dve enako veliki datoteki nista nujno enaki po vsebini, vseeno pa najprej omejimo izbor s tem filtrom, saj je iskanje po velikosti veliko hitrejˇse kot iskanje po vsebini. V dru-gem delu dobimo kot vhod datoteke z enakimi velikostmi, kjer nato z metodo MD5 poiˇsˇcemo enake. Zgoˇsˇcevalna funkcija (hash function) je algoritem, ki dobi kot vhod poljubno dolgo sporoˇcilo, kot izhod pa vrne fiksno dolgo binarno vrednost (hash value). Uporabljamo jo za preobli-kovanje poljubno dolgih vhodnih sporoˇcil v izhodne vrednosti dolˇzine 128 bitov. Pomembnost te funkcije je, da je nepovratna ali enosmerna:

to pomeni, da je nemogoˇce najti vhodno sporoˇcilo, ˇce poznamo izhodno vrednost. Temu, da dvema razliˇcnima vhodnima datotekama ustreza enak povzetek, reˇcemo kolizija. Jasno je, da za vsako zgoˇsˇcevalno funk-cijo obstajajo kolizije, ker imamo neskonˇcno mnogo moˇznih vhodov, ki jih preslikamo v konˇcno mnogo izhodov. Zgoˇsˇcevalna funkcija MD5 je v naˇsem primeru dovolj dobra, ker zagotovo nimamo veˇc kot 264 enako

32 Denis Oblak velikih datotek[36] in je hitrejˇsa kot novejˇse zgoˇsˇcevalne funkcije SHA1, SHA2 idr. Na koncu le ˇse uredimo izpis in dodamo velikosti datotek in skupen prihranek.

du S preprostim ukazom 3.2 poiˇsˇcemo velikosti izbrane mape in vseh njenih podmap, urejeno po velikosti v obratnem vrstnem redu. Potem lahko za velike mape pogledamo in po velikosti uredimo datoteke z ukazom 3.3.

Koda 3.2: Izpis velikosti map.

$ du −k path −−max−depth=1 | s o r t −nr Koda 3.3: Izpis velikosti datotek

$ du −a / t e s t 2 −−max−depth=1 | s o r t −n

Na voljo imamo ˇse ukaze, ki niso del programske opreme GNU. Uporabili smo jih, ker ˇzeleno z ukazi GNU ne moremo doseˇci, a so funkcionalnosti za ˇciˇsˇcenje sistema pomembne.

Package-cleanup Ta ukaz z razliˇcnimi parametri lahko uporabimo za iska-nje in brisaiska-nje osirotelih paketov in starih jeder.

yum clean Pri analizi sistema pogledamo velikost mape /var/cache/yum, da ugotovimo, koliko prostora lahko prihranimo z brisanjem datotek, ki so ostanki nameˇsˇcanja paketov.

locale Pri analizi z ukazom locale pokaˇzemo izbrani jezik in tudi vse ostale nameˇsˇcene jezike v sistemu.

Vraˇcanje rezultata analize

Tukaj bomo pojasnili, zakaj smo se odloˇcili za zapis rezultata operacij v datoteke in ne neposredno na zaslon. Bash nam ponuja veˇc moˇznosti za vraˇcanje vrednosti. Prvi naˇcin je vraˇcanje izhodnega statusa (0 je uspeh, vse ostalo neuspeh). Drugi naˇcin je izpis rezultata na standardni izhod. Tretji je klic funkcije, ki sprejme ime spremenljivke kot del ukaza in jo nastavi

Diplomska naloga 33 na vrednost funkcije [3]. Za vraˇcanje rezultata funkcij bi lahko uporabili katerega od teh naˇcinov, vendar smo se odloˇcili za uporabo vmesnih datotek zaradi ˇzelje po ˇcim bolj preprosti zamenjavi uporabniˇskega vmesnika. Vse, kar mora uporabniˇski vmesnik narediti, je, da pokliˇce funkcijo, ki jo ˇzeli izvesti, nato pa rezultat preprosto izpiˇse iz datoteke. Drugi razlog je ta, da je lahko rezultat funkcije zelo obseˇzen (veliko ˇstevilo datotek) in je poslediˇcno izpis v terminalu precej nepregleden. Tudi iskati in premikati se med rezultati v terminalu je teˇzko. V naˇsem primeru pa ima uporabnik moˇznost odpreti datoteko v urejevalniku besedil in preprosto analizirati rezultat. Tretji razlog pa je, da mu je rezultat doloˇcene operacije na voljo tudi po izvajanju kakˇsne druge analize, ko rezultati niso veˇc na zaslonu. Rezultat ostane namreˇc zapisan v datoteki, dokler ponovno ne izvede enake analize. Takrat se prepiˇse z novim rezultatom. Vsaka funkcionalnost pri analizi sistema ima namreˇc svojo datoteko, v katero se zapisujejo rezultati analize. V tej datoteki je zapisan seznam datotek s potmi, ki ustrezajo pogojem izbrane operacije.

Zraven so zapisane velikosti datotek in na koncu seˇstevek vseh velikosti, to je skupni prihranek prostora na disku v primeru brisanja.

Brisanje, prestavitev in razveljavitev

Naslednji trije sklopi funkcionalnosti so brisanje, prestavitev in razveljavitev.

Brisanje in razveljavitev sta obratno sorazmerna. Datoteke, ki jih pobriˇsemo, z razveljavitvijo lahko dobimo nazaj. To smo dosegli tako, da se ob izvaja-nju analize za vsako operacijo naredi svoja datoteka s seznamom datotek, ki ustrezajo kriterijem izbrane operacije. Uporabnik lahko datoteko odpre in jo poljubno ureja. Na ta naˇcin lahko dodatno izbere, katere od datotek se bodo brisale, ostale pa odstrani iz datoteke. Pri brisanju se sprehodimo ˇcez vse datoteke in jih zaradi moˇznosti razveljavitve prestavimo v mapo /tm-p/trash. ˇCe se uporabnik odloˇci za prestavitev namesto brisanja, se datoteke iz seznama prestavijo v mapo, ki jo uporabnik izbere prek uporabniˇskega vmesnika. Lahko izbere tudi ˇciˇsˇcenje mape /tmp/trash, vendar ˇsele ko je prepriˇcan, da ne potrebuje nobene datoteke, izbrane za brisanje. Namreˇc po

34 Denis Oblak brisanju vsebine mape /tmp/trash razveljavitev ni veˇc mogoˇca. Na to upo-rabnika tudi opozorimo. Namestitvene pakete pobriˇsemo s pomoˇcjo ukaza yum clean all, jezikovne pakete pa z ukazom localedef.

Poglavje 4

Sklepne ugotovitve

Diplomskega dela smo se lotili z namenom izdelave aplikacije za ˇciˇsˇcenje operacijskega sistema Linux. Predstavili smo tehnike ˇciˇsˇcenja operacijskih sistemov Linux, Windows in MacOS. V povezavi s tehnikami ˇciˇsˇcenja smo naredili pregled funkcionalnosti orodij, ki ˇze obstajajo na trgu. Zajeli smo orodja za vsak operacijski sistem posebej in naredili primerjavo med posa-meznimi orodji. Na spletu je ˇze kar nekaj orodij za ˇciˇsˇcenje operacijskega sistema Linux. Njihova teˇzava je, da so obiˇcajno omejeni na doloˇcene dis-tribucije, imajo premalo funkcionalnosti ali pa s sabo prinaˇsajo nezaˇzeleno zlonamerno programsko opremo.

Ena izmed prednosti naˇse reˇsitve je prav gotovo preprostost. Prek pre-prostega uporabniˇskega vmesnika omogoˇca obiˇcajnemu uporabniku izvedbo veˇcine opravil, povezanih z vzdrˇzevanjem operacijskega sistema in s prosto-rom na disku, ki jih obiˇcajno izvaja sistemski administrator. Ker v ozadju uporablja osnovne ukaze Linuxa, je primerna za veˇcino distribucij Linuxa, po vsej verjetnosti bo delovala tudi v prihajajoˇcih distribucijah. Narejena je kot skripta bash, kjer lahko vsakdo vidi, da ne vsebuje zlonamerne programske kode. Zaradi modularne zasnove, preglednosti in preprostosti je aplikacijo z minimalnim trudom mogoˇce prilagoditi lastnim potrebam. Prav tako je dodajanje novih funkcionalnosti preprosto. Zaradi ˇcelno-zaledne zasnove je preprosta tudi zamenjava uporabniˇskega vmesnika. Uporabnik lahko

name-35

36 Denis Oblak sto uporabniˇskega vmesnika uporabi kar razporejevalnik opravil in si nastavi izvajanje samo doloˇcenih opravil, ki jih aplikacija ponuja, ob poljubnem ˇcasu.

Dodobra smo raziskali podroˇcje in s preprostimi ukazi ter s preprosto upo-rabo pokrili potrebe po ˇciˇsˇcenju diska v operacijskem sistemu Linux. Tako smo pripravili osnovo za prilagajanje aplikacije prihajajoˇcim spremembam in ˇzeljam uporabnikov. Diplomski izdelek si lahko ogledate na naslovu [41].

Diplomska naloga 37

38 Denis Oblak

Literatura

[1] AppZapper. Dosegljivo: https://en.wikipedia.org/wiki/

AppZapper, 2016. [Dostopano: 12. 3. 2017].

[2] AppZapper. Dosegljivo: http://macreview.com/2012/10/

appzapper-review/, 2012. [Dostopano: 12. 3. 2017].

[3] Bash Funkcije. Dosegljivo: http://www.linuxjournal.com/content/

return-values-bash-functions, 2009. [Dostopano: 2. 1. 2018].

[4] Andrew Bettany. Windows File System Troubleshooting, 2015.

[5] BleachBit. Dosegljivo: https://en.wikipedia.org/wiki/BleachBit, 2017. [Dostopano: 10. 3. 2017].

[6] BleachBit for Linux. Dosegljivo: https://www.howtogeek.com/

116971/7-tips-to-get-the-most-out-of-bleachbit-a-ccleaner-for-linux/, 2012. [Dostopano: 19. 3. 2017].

[7] CCleaner vdor. Dosegljivo: https://www.racunalniske- novice.com/novice/dogodki-in-obvestila/ce-imate-program-ccleaner-ga-takoj-posodobite-sicer-vam-bo-zal.html, 2017.

[Dostopano: 01. 10. 2017].

[8] CCleaner. Dosegljivo: https://en.wikipedia.org/wiki/CCleaner, 2017. [Dostopano: 10. 3. 2017].

[9] CCleaner. Dosegljivo: http://www.pcmag.com/article2/0,2817, 2400840,00.asp, 2012. [Dostopano: 12. 3. 2017].

39

40 Denis Oblak [10] Linux praznuje ˇcetrt stoletja! Kje je pravzaprav danes? Dose-gljivo: http://www.racunalniske-novice.com/novice/dogodki-in- obvestila/linux-praznuje-cetrt-stoletja-kje-je-pravzaprav-danes.html, 2016. [Dostopano: 6. 3. 2017].

[11] Computer Janitor. Dosegljivo: http://www.linuxlinks.com/

article/20110101011003402/ComputerJanitor.html, 2015. [Dosto-pano: 12. 3. 2017].

[12] CleanGenius. Dosegljivo: https://en.wikipedia.org/wiki/

CleanGenius, 2016. [Dostopano: 12. 3. 2017].

[13] CleanGenius. Dosegljivo: https://itunes.apple.com/us/app/

cleangenius-pro/id486153141?mt=12, 2012. [Dostopano: 18. 3. 2017].

[14] Clean My Mac. Dosegljivo: https://en.wikipedia.org/wiki/

CleanMyMac, 2017. [Dostopano 18.3.2017].

[15] Clean My Mac. Dosegljivo: https://www.softwarehow.com/

cleanmymac-review/, 2016. [Dostopano 18.3.2017].

[16] How to Clear Cache on Mac OS X. Dosegljivo: https://macpaw.com/

how-to/clear-cache-on-mac, 2015. [Dostopano: 6. 3. 2017].

[17] Cruft. Dosegljivo: https://wiki.debian.org/Cruft, 2014. [Dosto-pano: 12. 3. 2017].

[18] Cruft. Dosegljivo: https://raphaelhertzog.com/2011/02/28/

debian-cleanup-tip-5-identify-cruft-that-can-be-removed-from-your-debian-system/, 2011. [Dostopano: 19. 3. 2017].

[19] Comodo System Utilities. Dosegljivo: https://en.wikipedia.org/

wiki/Comodo_System_Utilities, 2017. [Dostopano: 10. 3. 2017].

[20] DaisyDisk. Dosegljivo: https://en.wikipedia.org/wiki/DaisyDisk, 2017. [Dostopano: 12. 3. 2017].

Diplomska naloga 41 [21] DaisyDisk. Dosegljivo: http://www.macworld.com/article/

2996212/storage/daisydisk-4-review-now-faster-than-ever-at-cleaning-out-unwanted-files-on-your-mac.html, 2015. [Do-stopano: 18. 3. 2017].

[22] Defragmentacija. Dosegljivo: https://sl.wikipedia.org/wiki/

Defragmentacija/, 2016. [Dostopano: 22. 10. 2017].

[23] Fast Duplicate File Finder. Dosegljivo: https://en.wikipedia.org/

wiki/Fast_Duplicate_File_Finder, 2016. [Dostopano: 10. 3. 2017].

[24] Geek Uninstaller. Dosegljivo: http://www.makeuseof.com/tag/

geekuninstaller-uninstall-programs-thought-windows/, 2012.

[Dostopano: 10. 3. 2017].

[25] gtkorphan. Dosegljivo: http://www.hecticgeek.com/2011/12/gui-tool-to-remove-unused-packages-ubuntu-linux/, 2011. [Dosto-pano: 12. 3. 2017].

[26] gtkorphan. Dosegljivo: http://www.junauza.com/2012/06/best-system-cleaning-software-for-linux.html, 2012. [Dostopano: 19.

3. 2017].

[27] How to Clean Your Computer System. Dosegljivo: http://www.

wikihow.com/Clean-Your-Computer-System, 2016. [Dostopano: 6. 3.

2017].

[28] IObit Uninstaller. Dosegljivo: https://en.wikipedia.org/wiki/

IObit_Uninstaller, 2016. [Dostopano: 10. 3. 2017].

[29] JetClean. Dosegljivo: http://jetclean.software.informer.com/, 2018. [Dostopano: 10. 3. 2017].

[30] Neal Krawetz. Ubuntu Powerful Hacks and Customizations, 2010.

42 Denis Oblak [31] MacCleanse. Dosegljivo: https://thetechreviewer.com/software/

maccleanse-mac-application-review/, 2013. [Dostopano: 12. 3.

2017].

[32] MacCleanse. Dosegljivo: https://itunes.apple.com/us/app/

maccleanse/id415970551?mt=12, 2016. [Dostopano: 18. 3. 2017].

[33] Mac close app. Dosegljivo: https://support.apple.com/kb/PH25174?

viewlocale=en_US&locale=en_US, 2017. [Dostopano: 22. 8. 2017].

[34] MacKeeper. Dosegljivo: https://en.wikipedia.org/wiki/

MacKeeper, 2017. [Dostopano: 12. 3. 2017].

[35] Mac OS remove app. Dosegljivo: https://support.apple.com/kb/

PH25083?locale=sl_SI, 2017. [Dostopano: 22. 8. 2017].

[36] MD5. Dosegljivo: http://www.si-ca.si/kripto/kr-zgo.htm, 2006.

[Dostopano: 5. 1. 2018].

[37] Monolingual. Dosegljivo: https://www.macupdate.com/app/mac/

7758/monolingual, 2017. [Dostopano: 12. 3. 2017].

[38] Monolingual. Dosegljivo: http://www.makeuseof.com/tag/

monolingual-remove-languages-you-dont-use-from-your-mac/, 2013. [Dostopano: 18. 3. 2017].

[39] msconfig. Dosegljivo: http://www.online-tech-tips.com/cool-websites/guide-to-msconfig-windows/, 2014. [Dostopano: 27. 8.

2017].

[40] Microsoft recommends. Dosegljivo: https://support.microsoft.

com/en-us/help/15055/windows-7-optimize-windows-better-performance, 2016. [Dostopano: 12. 3. 2017].

[41] Denis Oblak. CleanLin. Dosegljivo: https://github.com/nusasara/

cleanlin, 2018.

Diplomska naloga 43 [42] OnyX. Dosegljivo: https://en.wikipedia.org/wiki/OnyX, 2017.

[Do-stopano: 12. 3. 2017].

[43] Onyx. Dosegljivo: http://macreview.com/2012/10/onyx-review/, 2012. [Dostopano: 12. 3. 2017].

[44] Optimize Storage. Dosegljivo: https://support.apple.com/en-us/

HT206996, 2017. [Dostopano: 30. 9. 2017].

[45] Upravitelji paketov. Dosegljivo: https://www.linode.com/docs/

tools-reference/linux-package-management, 2017. [Dostopano: 20.

3. 2017].

[46] Basic Troubleshooting and Maintenance Tips. Dosegljivo: http://

www.gballard.net/macrant/osx_troubleshooting.html, 2014. [Do-stopano: 23. 8. 2017].

[47] Jv16 powertools. Dosegljivo: https://en.wikipedia.org/wiki/Jv16_

powertools, 2016. [Dostopano: 10. 3. 2017].

[48] Registry cleaner. Dosegljivo: https://en.wikipedia.org/wiki/

Registry_cleaner, 2016. [Dostopano: 10. 3. 2017].

[49] Revo Uninstaller. Dosegljivo: https://en.wikipedia.org/wiki/

Revo_Uninstaller, 2016. [Dostopano: 10. 3. 2017].

[50] Stacer. Dosegljivo: http://www.techrepublic.com/article/how-to-install-stacer-for-quick-linux-system-optimization/, 2017. [Dostopano: 2. 9. 2017].

[51] Startup manager. Dosegljivo: https://support.microsoft.com/en-us/help/4026268/windows-change-startup-apps-in-windows-10, 2017. [Dostopano: 27. 8. 2017].

[52] Synaptic. Dosegljivo: https://help.ubuntu.com/community/

SynapticHowto, 2013. [Dostopano: 12. 3. 2017].