[LinuxOB] Suche nach grossen Dateien

Daniel Dombrowski daniel.dombrowski at linuxob.de
Mo Feb 16 19:55:41 CET 2004


On 2004.02.16 11:42, Michael Gisbers wrote:
> Hallo miteinander,
> 
> auf der Gentoo - Mailinglist kam in den letzten Tagen ein schöner
> Einzeiler zum Thema 'Welche Dateien schlucken bei mir den Platz?'
> 
> find / -mount -type f -print0 2>/dev/null | xargs -0 ls -l | \
> sort -n -k 5 -r |head
> 
> (Wie geschrieben ein Einzeiler, also das \ weg und den Rest direkt
> daran.)
> 
> hiermit wird über den find - Befehl eine Suche nach allen Dateien im
> aktuellen Dateisystem durchgeführt.
> 
> Der Parameter '-mount' sorgt dafür, daß nur der aktuelle Mountpoint
> und nicht weitere gemountete z. B. CD/DVD-Rom - Laufwerke oder NFS -  
> Shares durchsucht werden.
> 
> Wenn /usr, /home etc. einzelne mounts sind müßt Ihr selber
> entscheiden, ob Ihr das '-mount' weglaßt oder für jeden Mountpoint  
> das '/' gegen den jeweiligen Mountpoint austauscht.
> 
> Die restlichen Befehle sorgen dann dafür, daß der Dateiname mit Größe
> ausgegeben wird und die daraus entstehenden Daten dann absteigend  
> nach Größe sortiert werden.
> 
> Der Befehl 'head' am Ende sorgt dann für die Ausgabe der ersten 10
> Einträge und damit der 10 größten Dateien. Wenn Ihr mehr sehen wollt  
> könnt Ihr hinter head noch den Parameter '-n' gefolgt von einer Zahl  
> z. B. '-n 20' angeben um, wie im Beispiel, die 20 größten Dateien  
> anzeigen zu lassen.
> 
> Wenn jemand ähnliche nette Einzeiler kennt schickt sie doch mal bitte
> in die Liste ;-)

Also Christian und ich haben mal versucht, bestimte Problemstellungen  
so kurz wie möglich umzusetzen, was eigendlich auch in Einzeilern  
resultierte. U.a., ping so abzurichten, dass es bei jedem Pong einen  
Beep gab und trotzdem die normale Ausgabe des Pings zu lesen war.  
Ergebnis war dann irgendwas mit ping host | sed ...

Weiterhin habe ich noch einen Einzeiler, der aus einem Apache-Error-Log  
die Timestamps entfernt, die Zeilen sortiert und Duplikate entfernt:

cat error.log | sed -e 's/\[.*\] //g' | sort | perl -e 'while($line =  
<>) { print $line if $line ne $lastline; $lastline = $line}'

Ich hatte auch mal einen Einzeiler, der etliche Prozesse "von sich  
selbst" erstellt hatte und dann RAM gefressen hat, allerdings habe ich  
den wohl irgendwann mal weggeräumt. Sinn dieses Einzeilers war, eine  
Lastsimulation auf einem Rechner, der sich unter Last gerne mal  
rebootete zu simulieren.

Meine Einzeiler fangen meistens mit perl -e an und dann wird es  
manchmal auch etwas mehr, aber da kein Zeilenumbruch drin vorkommt, ist  
es halt ein Einzeiler. :)

Gruss

Daniel



Mehr Informationen über die Mailingliste linux