vielen dank !!! hat mir die lösung einer schon lange gärenden kleinigkeit gebracht!!! super! Am Donnerstag 04 Oktober 2001 03:36 schrieb Joachim Marx:
Hallo Leute,
kann mir einer der bash-Spezialisten bitte mal auf die Sprünge helfen?
Habe ein kleines Script (ein Stück davon aus einem älteren Posting hier abgekupfert), das folgende Aufgabe hat: In /home/profiles des Samba-Servers (PDC) liegen die Benutzer-Profile der Windowsmaschinen. Dort lassen einige Benutzer das Verz. "Temporary Internet Files" auf hunderte von MB vollaufen. Diese Verzeichnisse werden vom Script gescheckt und der Übeltäter ggf. per Mail informiert.
Problem: Ich krieg's mit den Leerzeichen im Verz.namen nicht gebacken. Mit einem Verzeichnis wie "Mail" klappt das Script tadellos. Quoten mit Backslash oder "" hilft in meiner Konstruktion nicht ... Die naheliegende Lösung heisst ja da immer "xargs", aber wie? Die Ausgabe von find -print0 kann ich xargs -0 zupipen, aber dann ich will ich ja 4 unterschiedliche Befehle auf das gefundene Verzeichnis loslassen. Kurz gesagt, ich brauche eine Idee. Wahrscheinlich muss ich das komplett umbauen? Nur wissen, wie ...
Also hier das Script:
#!/bin/bash # # geht natürlich nicht: # watch_dir="Temporary Internet Files" # geht: watch_dir=Mail # max_size in KB ! max_size=1000
for f in `find /home -name "$watch_dir" -type d -printf %p' '` do size_in_kb=`du -sk $f | cut -f1` owner=`find $f -maxdepth 0 -printf %u` realname=`grep $owner /etc/passwd|cut -f5 -d:` test $size_in_kb -gt $max_size && echo -e "\nHallo $realname! \ \nDein Verzeichnis $watch_dir ist zu voll: \n$size_in_kb KB\n" | \ mail -s "1. Mahnung" $owner done
# Ende Script
Hmmm ...? Joachim
-- may you always grok in fullness ( http://w3.one.net/~wap/wapGrok.html ) -- from/von/de >mfeilner@f-linux.com< Markus Feilner --------------------------- Linux, Webdesign, Erlangerstr. 2 --------------------------- IT-Consulting 93059 Regensburg ----- 0941/706523--------mobil: 0170/3027092