PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Festplatte voll --> Message an Admin



TBVAndy
21.08.03, 07:20
Guten Morgen Community,

ich bin heute durch Zufall auf euer Board gestoßen und hoffe das ihr mir ein wenig weiterhelfen könnt.

Ich möchte per Cron ein Skript auf meiner Suse 8.2 aufrufen die eine Broadcastmessage an den Admin sendet, sobald der Festplattenspeicher einer bestimmten Platte einen gewissen Wert unterschritten hat.

Mit Hilfe der Suche habe ich jetzt rausgefunden, wie ich den Plattenplatz ermitteln kann.


df | grep 'hda12' | awk '{print 4$}'

Das funktioniert auch ganz wunderbar.

Danach hab ich dann mal per Commandozeile ne Möglichkeit gesucht einem bestimmten Client eine Nachricht zu senden. Das habe ich mit Hilfe der Suche dann auch rausgefunden.


echo "NACHRICHTENTEXT" | smbclient -M HOSTNAME

Funzt auch ganz wunderbar.

Aber jetzt hört es auch schon auf mit meinen Fähigkeiten.
Also ich habe mir dann nen Skript angelegt und mir chmod 774 versehen.

Bisher sieht es so aus!


#!/bin/bash

df | grep 'hda12' | awk '{print 4$}'

if [$4 < 100000] ; then
echo "NACHRICHTENTEXT" | smbclient -M HOSTNAME
fi


Naja, aber das funzt so leider nicht so wirklich!

Kann mir da wohl eine sagen was genau ich falsch gemacht habe?

Vielen Dank für eure Hilfe

HEMIcuda
21.08.03, 08:00
Versuch mal das hier:


#!/bin/bash

if [$(df | grep 'hda12' | awk '{print 4$}') -lt 100000]
then
echo "NACHRICHTENTEXT" | smbclient -M HOSTNAME
fi


HTH,

'cuda

TBVAndy
21.08.03, 08:55
Hallo,

also wenn ich das



if [$(df | grep 'hda12' | awk '{print 4$}') -lt 100000]
then
echo "NACHRICHTENTEXT" | smbclient -M HOSTNAME
fi

mache, erhalte ich die Fehlermeldung ./platte_voll2:line 19: [10306888: command not forund

Die 10306888 sind der freie Plattenplatz.
In Reihe 19 steht


if [$(df | grep 'hda12' | awk '{print $4}') -lt 100000]

HEMIcuda
21.08.03, 09:09
Arbeite Dich mal durch man test durch.
Da duerften Deine Fragen beantwortet werden.
Es ging mir auch mehr um das -lt anstelle
vom <

'cuda

TBVAndy
22.08.03, 09:36
Also darauf muß man auch erst einmal kommen.

Hab jetzt rausgefunden, warum der Sch... nicht ging!

Das Skript muß so aussehen!



#!/bin/bash

if [ $(df | grep 'hda12' | awk '{print 4$}') -lt 100000 ]
then
echo "NACHRICHTENTEXT" | smbclient -M HOSTNAME
fi


Also Hinter- und Vor der [ Klammer muß nen Leerzeichen stehen! ;)

Flo87
22.08.03, 15:05
Original geschrieben von TBVAndy
#!/bin/bash

if [ $(df | grep 'hda12' | awk '{print 4$}') -lt 100000 ]
then
echo "NACHRICHTENTEXT" | smbclient -M HOSTNAME
fi


Was ich hier fett markiert habe ist leider etwas falsch. musst es nur umderehen, es sollte $4 heißen.

TBVAndy
22.08.03, 15:22
Jo, das war mir auch schon aufgefallen, aber ich hatte das Skript nur von oben kopiert und dann nur die Leerzeichen eingefügt! Da hab ich dann vergessen die 4 und das $ zu drehen!