Skript welches filegröße ausliest

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
BrianFFM
Beiträge: 222
Registriert: 21.04.2004 11:54:33
Wohnort: L.A. in Hessen

Skript welches filegröße ausliest

Beitrag von BrianFFM » 22.03.2005 12:35:01

hallo alle,

ich brauche ein kleines Skript welches die größe von verschiedenen files in einem Verzeichniss ausließt und wenn eine bestimmte Größe überschritten wird, eine Mail absendet.

p.s.: Quota kann ich in diesem zusammenhang nicht benutzen.

kann mir jemand dabei helfen oder weis, wo es sowas schon gibt ?

Gruß Brian
Debian GNU Linux testing
Toffifee Sattelite 5200/902

Hast du keine Probleme?
Dann kauf dir einen Computer !

.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 22.03.2005 12:55:42

Die Groesse von einzelnen Files oder allen Files zusammen?
Du koenntes dir da ein Shellskript bauen und fuer die Anzeige der Dateigroessen kannst du du benutzen.
Falls du z.B. die Groesse aller Files in einem Verzeichnis + Unterverzeichnissen haben willst, geht das mit

Code: Alles auswählen

du -s <verzeichnis>
Wenn du die einzelnen Files haben willst, dann

Code: Alles auswählen

du <verzeichnis>

lochkarte
Beiträge: 190
Registriert: 08.12.2004 11:43:44

Beitrag von lochkarte » 22.03.2005 13:06:28

nepos hat geschrieben:Wenn du die einzelnen Files haben willst, dann

Code: Alles auswählen

du <verzeichnis>
Ähhh, wie meien :?: :?: :?:

BrianFFM
Beiträge: 222
Registriert: 21.04.2004 11:54:33
Wohnort: L.A. in Hessen

Beitrag von BrianFFM » 22.03.2005 14:47:34

danke danke .. die toolz kenne ich ganz gut um mir die Größe anzeigen zu lassen.

ich bin aber kein scripter .. da binn ich ein "DAU" (Dümmster Anzunehmender User)

deswegen ja meine Frage ob mir jemand dabei etwas helfen kann ..

ziel ist es einen Cronjob alle stunde laufen zu lassen und sobald einer von zB 40 files im verzeichnis /var/xyz/* größer wird als 50MB eine mail an den Admin zu senden.

Gruß, Brian
Debian GNU Linux testing
Toffifee Sattelite 5200/902

Hast du keine Probleme?
Dann kauf dir einen Computer !

.

Benutzeravatar
volkerw
Beiträge: 19
Registriert: 26.03.2005 22:07:53
Wohnort: Witten

Beitrag von volkerw » 31.03.2005 09:41:48

Hallo Brian,
habe mich mal mit der Aufgabe beschaeftigt, hier ein Loesungsvorschlag:

Code: Alles auswählen

#!/bin/sh
# --------------------------------------------------------------------
# Dateiname: check-du.sh
# Das Script checkt, ob eine Datei(Verz.) in $dir die Groesse $maxsize
# ueberschreitet und sendet ggf. eine Liste der zu grossen Dateien
# an root
# --------------------------------------------------------------------
dir=/etc
maxsize=10
maildatei=/tmp/check-du.mail

# alte Maildatei loeschen
if [ -e $maildatei ]; then
	rm $maildatei
fi

# Verzeichnis durchsuchen
for datei in `ls $dir` 
do
	size=`du -sk "$dir/$datei" | awk '{ print $1 ; }'`
	if [ $size -gt $maxsize ]; then
		echo "$dir/$datei ist zu gross ($size KB)" >> $maildatei
	fi
done

# Maildatei senden, wenn vorhanden
if [ -e $maildatei ]; then
	mail -s "check-du" root < $maildatei
fi
Viel Spass damit !

Gruss
Volker

Antworten