automatische meldung

freEze

freEze

Jungspund
hallo,
ich brauch ein shellskript das mir ne automatische meldung ausgibt wenn ein verzeichnis zu 50% voll ist.
erstmal sollte das reichen das er mir das in eine textdatei schreibt.
später soll er das noch auf einem anderen pc im netz anzeigen.

wie kann man das verwirklichen??
 
Phorus schrieb:
Wann ist ein Verzeichnis zu 50% voll?

Ich glaube er meint die Platte in der das Verzeichnis gemountet ist ?

Aber ich gebe dir da eigentlich Recht Phorus ... mal sehen was er antwortet ;)
 
wie kann man das feststellen, das eine platte zu 50% voll ist...
ich glaube mit dem befehl df??
 
Hallo

Wenn es um den verbrauchten Platz in Prozent geht, ist das -h nicht nötig.

Schnellschuss:
Code:
df -P|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5] hat noch ",100-$F[4], "% Kapazität\n" if(($F[4]>50))}'
oder
Code:
df -P|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5] ist zu ",1$F[4], "% belegt\n" if(($F[4]>50))}'
Gruß Wolfgang

Edit: Fehler korrigiert.
 
Zuletzt bearbeitet:
nicht schlecht wolfgang_1
bei mir zeigt er es nur falschrum an
also platte ist nicht belegt / die consolen eingabe von dir meint zu 100%
mfg traster
 
bei mir kommt folgende fehlermeldung!

bash-2.03$ df -P|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5] ist zu ",1 $F[4], "% belegt\n" if(($F[4]>50))}'
df: Unbekannte Option: P
Syntax: df [-F FSType] [-abegklntVv] [-o FSType-spezifische_optionen] [verzeichn
is | blockgerät | ressource]

Scalar found where operator expected at -e line 1, at end of line (Missing operator before ?)
syntax error at -e line 1, near "1$F"
Execution of -e aborted due to compilation errors.
 
Zuletzt bearbeitet:
Dann lass die Option "-P" weg. Wenn das dann immer noch nicht geht, poste mal, was "df" für ein Output bringt.
 
bash-2.03$ df |perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5] ist zu ",1$F
[4], "% belegt\n" if(($F[4]>50))}'
Scalar found where operator expected at -e line 1, at end of line
(Missing operator before ?)
syntax error at -e line 1, near "1$F"
Execution of -e aborted due to compilation errors.
 
/ (/dev/vx/dsk/rootvol): 1034830 Blöcke 440115 Dateien
/proc (/proc ): 0 Blöcke 28686 Dateien
/dev/fd (fd ): 0 Blöcke 0 Dateien
/etc/mnttab (mnttab ): 0 Blöcke 0 Dateien

und noch ganz viele mehr
 
hmm, komisches df. Was sagt denn die man-Page von df? ("man df" in shell eingeben)
 
Maintenance Commands df(1M)

NAME
df - displays number of free disk blocks and files

SYNOPSIS
/usr/bin/df [ -F FSType ] [ -abegklntV ] [ -o FSType-
specific_options ] [ block_device | directory | file |
resource ... ]

/usr/xpg4/bin/df [ -F FSType ] [ -abegklnPtV ] [
-o FSType-specific_options ] [ block_device | directory |
file | resource ... ]
 
Arg, werden nirgendwo die Schalter beschrieben? Guck mal, ob noch mehr Kapitel da sind, also "man -a df".

Was bringt "/usr/xpg4/bin/df -P"?
 
Dateisystem 512-Blöcke Belegt Verfügbar Kapazität Eingehängt auf
/dev/vx/dsk/rootvol 8069356 7034526 954138 89% /
/proc 0 0 0 0% /proc
 
Ok, so gehts also:

Code:
/usr/xpg4/bin/df -P|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5] hat noch ",100-$F[4], "% Kapazität\n" if(($F[4]>50))}'
 
gut das geht jetzt schon mal

jetzt soll er mit nur eine platte(df /Platte)
und da von einem ordner
da standen vorhin auch prozent zahlen.
wenn dann bei dem einem dann über 50% stehen soll er eine meldung schreiben


wenn ich einfach df -k mache zeigt er mir ja auch die belegten % an.

kann ich da irgendwie sagen das er bei name(ordner) wenn über 50% da steht leeren.

geht das?
 
Zuletzt bearbeitet:
freEze schrieb:
hi,
wenn ich einfach df -k mache zeigt er mir ja auch die belegten % an.

kann ich da irgendwie sagen das er bei name(ordner) wenn über 50% da steht leeren.

geht das?

Code:
/usr/xpg4/bin/df -k|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5]" if(($F[4]>50))}'|xargs rm {}/*

Eventuell vorher xargs anschauen, da dies nicht auf allen Unixen gleich ist.

edit: Bitte keine pms, wenn man es auch im Forum lösen kann.
 
gut das läüft
wo muss ich hin schreiben das er nur eine platte durchsucht und nicht alle die gemountet sind

df -k (laufwerk???)/usr/xpg4/bin/df -k|perl -ane 'unless($.==1){$F[4]=~s/%//g;print "$F[5]" if(($F[4]>50))}'|xargs rm {}/*

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 {}/*
 
Zuletzt bearbeitet:

Ä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