PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell hilfe!



basko
16.01.05, 16:56
hi leute!

ich habe leider ein problem, ich komme leider nicht weiter...
es ist nur eine aufgabe, aber dennoch sehr wichtig...
kurz gefasst soll ich den verbrauchten platz eines users in eine datei speichern UND die anzahl der dateien! übergeben werden die user als parameter.


while [ $i -ne 1 ] ; do
for param ; do
echo `ls /home/$param/ -A -R | wc -l > /home/$param/usage.txt`.
echo `du -hc -h -l /home/$user/ | grep "total"` >> /stat/$param.txt
done
sleep 5
done

leider zählt dieses programm auch sämtliche unterordner mit! was es nicht soll :((

besten dank im voraus!!!

mfg

sepp2k
16.01.05, 17:07
leider zählt dieses programm auch sämtliche unterordner mit! was es nicht soll :((
Wenn es das nicht soll, warum dann der "-R"-Parameter?

basko
16.01.05, 17:38
nun ja für Rekursiv... es könnten ja auch dateien in unterordnern sein... die sollten auch berücksichtigt werden... :((

mfg

altesocke
16.01.05, 22:51
hallo,

wie wärs mit:


du -hs

cu, socke

basko
19.01.05, 22:54
mmh, eine andere möglichkeit gibts nicht? mit einem zusätzlichen param bzw. pipe? :(( bitte bitte

mfg

klemens
19.01.05, 23:32
mmh, eine andere möglichkeit gibts nicht? mit einem zusätzlichen param bzw. pipe? :(( bitte bitte

mfg

wenns unbedingt ls, param, pipe sein muss:

ls -l ... | sed '/^d/d'
.. oder so ähnlich ...

tictactux
20.01.05, 00:24
mmh, eine andere möglichkeit gibts nicht? mit einem zusätzlichen param bzw. pipe? :(( bitte bitte
Du willst also viele Sonderzeichen :D ? Bitte:

#!/bin/sh
myHOMES="/home"
myUNITS="m"
for myDIR in $( (cd $myHOMES && find . -type d -maxdepth 1 | sed -e s'#^.\/##') ); do
if [ $(egrep -c "^${myDIR}:" /etc/passwd ) != "0" ] ; then
myDISK=$(du -s${myUNITS} ${myHOMES}/${myDIR} | awk '{print $1}' )
myFILES=$(find ${myHOMES}/${myDIR} -type f | wc -l )
printf "user %-10s: %9ld %1sBytes in %8ld files\n" $myDIR $myDISK $myUNITS $myFILES
fi
done
ist zwar 5 Zeilen länger, dafür vergleicht es gültige Namen für Home-Verzeichnisse
automatisch aus der Login-ID aus /etc/passwd (nein, nicht für root,
ja, man könnte auch Feld 6 aus /etc/passwd nehmen ;) )
Die beiden konfigurierbaren Variablen am Scriptanfang beachten...

HTH
Wolfgang
PS: sollte mit z.B. sudo ausgeführt werden (Zugriffsrechte)