automatische meldung

Hallo
Mein Einzeiler bezog sich auf:
$df --version
df (coreutils) 5.2.1


Wieder ein Beispiel, dass es immmer angebracht ist sein OS nebst Verwendete Versionen zu posten.
Die Option -P bei meinem df sorgt lediglich für POSIX kompatible Ausgabe. Also z.B. keine Zeilenumbrüche
Code:
$df -P|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5] ist zu ",$F[4], "% belegt\n"if(($F[4]>50))}'
[i]/mnt/grub ist zu 84% belegt
/mnt/hda12 ist zu 58% belegt
/home ist zu 61% belegt
/mnt/cdrom1 ist zu 100% belegt
[/i]
Das geht allerdings auch ohne -P, wenn die Zeile nicht zu lang wird.

Der Perlcode ist recht simpel erklärt.
Die 1 vor dem $F5 ist übrigens nicht richtig, aber spielt keine Rolle. Habe diese nur beim Editieren (Löschen der 100-) übersehen.

Siehe Perldoc perlrun
Die Option -a sorgt für ein Aufsplitten der Zeile am IFS.
Die einzelnen Werte finden sich im Array @F

unless($.==1)
überspringe Zeile 1( Kopfzeile)

$F[4]=~s/%//g
% entfernen
print "$F[5] ist zu ",$F[4], "% belegt\n"if(($F[4]>50))} Printbefehl wenn das 5.Feld >50 ist.

Gruß Wolfgang

Zu deiner Frage:
Häng eben ein simples |grep "hdxy"| vor den Perlcode oder editiere die Bedingung am Ende. Wobei hdxy deine Partition bezeichnet.

...if(($F[4]>50))

in
...if(($F[4]>50)&&($F[5]=~m/hdxy/))
 
Zuletzt bearbeitet:
ja klappt alles
brauch auch nichts ändern

hab das jetzt so:

/usr/xpg4/bin/df -P|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5] ist zu ",$F[4], "% belegt\n"if(($F[4]>50))}' >temp.txt

jetzt das was im temp.txt soll er löschen.
???????/usr/bin/rm -i "${name}" <temp.txt?????????
wie geht das irgendwie so?
 
freEze schrieb:
...
kannst du mir bitte erklären was die einzelnen befehle heißen
/usr/xpg4/bin/df -k|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5]" if(($F[4]>50))}'|xargs rm {}/*

Den Perl-Teil hat Dir Wolfgang bereits erklärt. Meiner ist etwas modifiziert und gibt nicht den Satz "... ist zu ... belegt" aus, sondern nur den übervollen Mountpoint. "xargs rm {}/*" nimmt diesen Mountpunkt und löscht den Inhalt. xargs ersetzt {} durch den Mountpunkt und führt dann "rm Mountpunkt/*" aus.

@Wolfgang: F[4] ist schon richtig ;)
 
Phorus schrieb:
@Wolfgang: F[4] ist schon richtig ;)
Stimmt auffallend. :(
Habe mich doch schon wieder von diesem seltsamen df verwirren lassen.
Ich werde es also nochmal editieren.

Gruß Wolfgang
 

Ähnliche Themen

Speicherproblem?

[HowTo] Debian Installation mit Installer über SSH

Dateien und Paketmanagement

loginproblem mit proftpd

SDL applikation frisst speicher ohne ende

Zurück
Oben