Hvorfor blev min disk fyldt op?

Da jeg var ansat hos Nokia skrev min kvikke UNIX-guru Anders et snedigt disk-analyse-program. Design-ideen var at man kunne få information på alle katalog-niveauet om hvor gammel data er neden under og hvor mange GB, der lå gemt nedenunder. I et stort firma kom der ofte kæmpe data-mængder og ingen havde lyst til at slette data. Det blev naturligvis meget rimeligt at der skal ryddes op, hvis data hverken ændres eller tilgås. Anders er ligesom så mange andre blevet fyret^H^H... givet fri fra Nokia, og jeg ved ikke hvad der skete med hans program.

Til min store glæde har jeg dog nu fundet en rimelig erstatning i programmet "Agedu" (udtales "age dee you") fra http://www.chiark.greenend.org.uk/~sgtatham/agedu/.
Man starter med at skanne et disk-område - i mit eksempel /media/pto/8c43e485-3f86-4cba-98d0-f54abda9ed75 (en stor data-disk med billeder, video og musik).
Skanningen tager et par sekunder og køres med

$ agedu -s <code>pwd</code>

Der ligger ca 227 GB på disken. For at se fordelingen starter jeg en lille webserver med

$ agedu -w
Using Linux /proc/net magic authentication
URL: http://127.0.0.1:45219/

og retter derefter min webbrowser til den adresse jeg fik tilbage (http://127.0.0.1:45219/). Dette giver dette billede (klik selv for at få bedre opløsning).

Illustration: Privatfoto

Klikker jeg på "billeder" får jeg den bekymrende udvikling i datamængde for mine digitale billeder :-D

Som det kan ses på første billede vil Agedu vise mig information om aldersfordelingen af min data. Også snedigt, og "man agedu" viser at der er flere options omkring hvad der vises.
Efter brug kan man med fordel slette "agedu.dat" - en data-fil med cache for disken. I mit eksempel fylder den 8MB.

Jeg synes, det er et glimrende program, og det gør det nemmere at finde store klumper data.
Jeg savner måske at få nem information om hvem, der har data liggende i et katalog.

Er der nogen af jer som kender tilsvarende programmer?

/pto

Kommentarer (20)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#3 Martin Andersen

Det var da charmerende som bare f.nden ... :-)

Normalt tænder jeg ikke på farver (end sige powerpoints), men jeg må da give, at der kommer et udmærket overblik ud i den sidste ende.

Skal jeg sige noget negativt, så må det være, at der tilsyneladende ikke vises grafer på fil-niveau, med derimod blot på directory-niveau. Med andre ord er det ikke nemt at se, hvilke filer, man har, der fylder meget.

Når det så er sagt, så takker jeg blidt Peter for at komme med denne info. I de gode gamle dage havde linux.com en artikelserie, der hed "My sysadmin tools" (et eksempel herpå kunne være: http://archive09.linux.com/feature/51389 ), hvilket jeg nok et eller andet sted savner.

Jeg synes, at det er fedt, når nogen laver lidt kode, der rent faktisk er brugbart for os andre -- og endnu federe, når der bliver gjort opmærksom på det.

/Martin

  • 1
  • 0
#13 Jesper Høgh

...så kører det for dig.

agedu og ncdu i forening er da en glimrende løsning. Agedu til det store overblik, og ncdu til at få flere detaljer. Og endelig vifm til at foretage oprydningen.

Alle findes iøvrigt i både Ubuntus og Raspbians repos. Så på både min laptop og min RaspberryPi var det bare: sudo apt-get install agedu ncdu vifm

  • 1
  • 0
#17 Jesper Høgh

Klassiker (og jeg elsker CUI) - men at få info med om alder er kanon til store firma-diske

Så skal du da ty til find. Her kan du alt, og lidt til. Hvis øvelsen går ud på at flytte ubrugte filer til et fjernlager og evt zippe dem, så er det vel egentlig temmelig uinteressant hvor gammel filen er. Det, der må være mest interessant er: Hvornår er en given fil senest tilgået. Og bl.a. her er find jo helt forrygende fleksibel. Før jeg faldt over rsync brugte jeg find til en gang i døgnet at finde de filer, som var blevet ændret indenfor de seneste 24 timer, zippede dem og kopierede til nas. Men find kan jo bruges til uendeligt meget mere end dét:

Lad os antage, at du ønsker at flytte alle filer i /home (og underliggende), som ikke har haft menneskelig kontakt (altså, som minimum været læst) indenfor de seneste 1000 dage, til et andet sted i cyberspace:

  1. lav en liste over filerne, og gem den i filelist.txt: find /home/* -atime +1000 > filelist.txt (hvis du bare lige vil se hvor mange filer det omfatter, så: find /home/* -atime +1000 | wc -l )

  2. derefter er det jo et spørgsmål om temperament og organisation, hvad der så skal ske. Hvis f.eks. filserverens struktur er noget i retning af /home/afdeling/gruppe/medarbejder, så kunne man jo lade et script parse filelist.txt med det formål at sende en mail til ejerne af filerne, om at den og den fil er på vej til fjernlager.

  3. herefter kunne man så zippe, kopiere til fjernlager og sluttelig slette på filserveren.

  • 0
  • 0
#18 Lars Tørnes Hansen

at man rent faktisk lige skal forbi alle filerne og se hvad der står , eller findes der et mere intelligent filsystem ?

Selvfølgelig skal man kigge i filsystemet for at finde ud filnavn, størrelse, hvornår filen sidst blev brugt, etc. Den slags har ikke noget at gøre med intelligens at gøre.

En anden ting er at programmer kun ser VFS: http://www.ibm.com/developerworks/linux/library/l-virtual-filesystem-swi... , og at der mere end et filsystem i Linux - der er ca 54 filsystemer man kan bruge: http://infosthetics.com/archives/linux_expidition2.jpg

Linux/BSD har ikke drev bogstaver i sit VFS, der er kun / (root).

  • 1
  • 0
#19 Anders Søndergaard Jensen

Hej søde og selv kvikke Peter!

Det er rart at se at der sker lidt på det område, for det er efter min mening mærkeligt at der ikke er flere snedig tools til at analysere filsystem metadata, på en snedig måde end der er.

agedu gør et ganske hæderligt forsøg, og især farverne er en god måde at repræsentere filers alder på. Men jeg savner lidt at man også kan vælge MTIME som udtryk for alder.

Hos Nokia fandt vi ud af at ATIME ikke var en særlig egnet kandidat til at afgøre om data var dødt eller ej. Hjemme på vores private arbejdsstation kan den være udemærket, men i et enterprise R&D miljø er der 117 automatiske systemer der tilgår filerne (viruscheckere, continuous integration, folks scripts, etc.) og ændrer på ATIME. MTIME viste sig i praksis at være en bedre indikator for om data var levende eller dødt.

Mit system (Disk Scrutinizer) akkumulerede alder, antal filer, størelse, etc. fra bunde af filsystemet og op, så man altid på et givet sted kunne se hvad den nyeste fil var, gennemsnitsalder, volumen af data herunder, etc. Jeg samlede også 30 iterationer op, så man kunne få en graf over udviklingnen. Og især den var nyttig, når der skulle afgøres om data var dødt (fx. til automatisk sletning) eller ej.

Programmet findes såmænd endnu og jeg var så snedig at køre det igennem vores IPR afdeling på et tidligt tidspunkt, så jeg har faktisk selv rettighederne til at udgive det som open source under en BSD lignende licens eller Poul-Hennings beerware, som jeg mener er de mest fornuftige licenstyper der eksisterer.

Jeg drømmer om at pudse det af og af-Nokiaficere det og se om andre kunne have gavn af det også, men der er lidt på todo listen før jeg når dertil.

Men hvis interessen er der, kan jeg måske godt re-nice projektet. :-)

I kærlighed,

Anders

  • 0
  • 0
Log ind eller Opret konto for at kommentere