Ieri am povestit despre FlameGraphs, o unealtă grafică pentru aflarea spațiului liber pe hard disk în Linux. Astăzi voi prezenta duviz.py, un utilitar simplu în linia de comandă, scris în Python, care permite vizualizarea spațiului folosit în distribuțiile Linux.
Caracteristici
- Nu are dependențe ciudate. Practic, ai nevoie doar de Python2, du și ls, care se găsesc în orice distribuție Linux.
- Are doar un fișier - scriptul duviz.py, scris în Python. Poate fi pus oriunde și rulat de oriunde.
- Rapid. Nu necesită timp de așteptare pentru deschiderea interfeței grafice.
- Duviz detectează mărimea terminalului, astfel încât ieșirea va fi adaptată la lățimea sa.
- Nu are nevoie de argumente. Scriptul rulat simplu afișează mărimea directorului în care se află.
- Suport pentru contorizarea inode-urilor în loc de fișiere: se adaugă
-i
sau --inode la comandă.
Instalare
Doar se descarcă scriptul de aici - click! Un singur fișier!
Rulare
Scriptul rulează de oriunde folosind una din cele două posibilități în linia de comandă:
python2 duviz.py
Sau îl facem executabil:
<p style="text-align: justify;">chmod +x duviz.py
./duviz.py
Dacă îl rulăm fără niciun argument din locul în care l-am descărcat, scriptul va calcula și afișa mărimea directorului în care se află. Putem să-i indicăm un anume director (ca în exemplul din imaginea de mai sus):
./duviz.py /opt
O altă cale foarte simplă de a-l rula fără să vă aminiți locul unde l-ați pus: copiați (sau mutați) scriptul într-unul din folderele din $PATH (aveți grijă să fie făcut executabil), după care poate fi rulat din orice loc în care vă aflați doar scriind comanda:
duviz.py [director_de_analizat]
În imaginea de mai jos am afișat conținutul variabilei de mediu $PATH și am ales să mut scriptul în directorul /usr/bin:
Nu uitați de opțiunea -i
sau --inode
.
Mai multe informații pot fi aflate rulând scriptul cu opțiunea --help
:
$ duviz.py --help
Usage: duviz.py [options] [DIRS]
duviz.py gives a graphic representation of the disk space
usage of the folder trees under DIRS.Options:
--version show program's version number and exit
-h, --help show this help message and exit
-w WIDTH, --width=WIDTH
total width of all bars
-x, --one-file-system
skip directories on different filesystems
-L, --dereference dereference all symbolic links
--max-depth=N maximum recursion depth
-i, --inodes count inodes instead of file size
--no-progress disable progress reporting
Ce părere aveți despre duviz.py?
Şerban Stănescu a zis
Ai uitat să precizezi că listarea ca user este parţială.
Din captură se vede clar că trebuie lansat cu sudo duviz.py.
Am păţit şi eu asta cu funcţia "Search" din Krusdader, care afişează ceva similar privind drepturile, dacă intenţionezi să listezi totul. Cred că şi ls face tot aşa şi dir. De altfel, e şi logic, unele elemente din sistemul de fişiere sunt create ca root şi accesul la ele din /home/UserX/ este restricţionat la ce ţine de UserX, în lista de drepturi.
Mai mult, când folosesc LuckyBackup pe /home, tot aşa, primesc "erori". LuckyBackup e o variantă grafică de rdiff.
Înainte să încep să mă obişnuiesc cu drepturile utilizatorului, mă necăjeam mult la unele operaţii cu fişiere şi directori (reorganizarea arhivei). Motiv pentru care am folosit partiţie NTFS pentru directorul de lucru curent, mulţi ani! 😮
Linia de comandă, e uneori inevitabilă. Ca să poţi folosi un file manager ca root, se poate doar cu sudo (su)... executabil.
MC de pildă, poate schimba atributele de fişier, proprietarul, etc. Dar pentru asta, trebuie lansat ca root.
Când am mai multe sarcini administrative, prefer să pornesc bash ca root şi pe urmă am acces la orice aplicaţie, ca root<b/. Inclusiv la interfaţa X, dacă asta vreau. Pe blog am evitat subiectul, pentru că poate duce la consecinţe neplăcute.
Şi, din păcate pentru un începător, metoda e valabilă sub orice distribuţie...
Bobses a zis
Sunt pe plajă acum, așa că nu mă întind cu răspunsul. 🙂
Da, toate programele de administrare care accesează fișierele de sistem trebuie lansate ca root, pentru ca userul normal nu are, de multe ori, nici măcar drepturi de
citire a acestora.
Cum adică lansezi bash ca root? Poți lansa terminalul ca user normal, apoi cu comanda "sudo su" schimbi ca root.
Şerban Stănescu a zis
Simplu: sudo bash
Orice program lansat după asta, merge în modul root.
Ştiu că am scris mai demult ceva despre asta, pe blog.
Oricum, rezultatul e tot cel menţionat de tine, mai sus.
Ștefan Suciu a zis
Nu-s prea impresionat de formatul datelor rezultate, rămân la ncdu.
Bobses a zis
Pai de aceea e unul din cele mai simple instrumente. 🙂
Am să mă uit și ce are ncdu diferit.
Bobses a zis
Am instalat acum ncdu: nu arată decât directoarele din primul nivel, spre deosebire de duviz și chiar FlameGraphs care afișează și subdirectoarele până la finalul arborelui.