Benötige Unterstützung bei Shell Script - Test Operation..
Hallo..
Ich brauche Bitte eure Hilfe... und zwar folgendes... Ich muss ein Script schreiben, dass die Home-Laufwerke von nicht mehr vorhandenen User sucht und dann löscht..
Benutzer die es nicht mehr gibt, werden zu einer UID.. dh. Der Besitzer des Home-LW wird durch die UID ersetzt...
vorhandener Benutzer: rwxrwxrwx 1 SEPPI users 9 May 17 00:52 /home/SEPPI
ohne Benutzer: rwxrwxrwx 1 12345 users 9 May 17 00:52 /home/SEPPI
und jetzt das Problem..
Wie kann ich mit der Test anweisung checken, ob der Wert eine Zahl oder ein Wort ist...
for USR in `ls -l /home/ | awk -F" " '{ print $3 }'`
do
if [ $USR = (ZAHL ODER WORT) ];then
do
echo "$USR ist eine ZAHL"
else
echo "$USR ist ein WORT"
fi
done
Bitte um rasche Hilfe...
THX
Ich brauche Bitte eure Hilfe... und zwar folgendes... Ich muss ein Script schreiben, dass die Home-Laufwerke von nicht mehr vorhandenen User sucht und dann löscht..
Benutzer die es nicht mehr gibt, werden zu einer UID.. dh. Der Besitzer des Home-LW wird durch die UID ersetzt...
vorhandener Benutzer: rwxrwxrwx 1 SEPPI users 9 May 17 00:52 /home/SEPPI
ohne Benutzer: rwxrwxrwx 1 12345 users 9 May 17 00:52 /home/SEPPI
und jetzt das Problem..
Wie kann ich mit der Test anweisung checken, ob der Wert eine Zahl oder ein Wort ist...
for USR in `ls -l /home/ | awk -F" " '{ print $3 }'`
do
if [ $USR = (ZAHL ODER WORT) ];then
do
echo "$USR ist eine ZAHL"
else
echo "$USR ist ein WORT"
fi
done
Bitte um rasche Hilfe...
THX
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 73150
Url: https://administrator.de/forum/benoetige-unterstuetzung-bei-shell-script-test-operation-73150.html
Ausgedruckt am: 25.12.2024 um 06:12 Uhr
3 Kommentare
Neuester Kommentar
Müsste ich mir jetzt genauer ansehen, die spezielle Frage kann ich also nicht beantworten. Ich kann dir nur sagen, wie ich es machen würde.
pushd /home
for usr in `ls`; do
done
popd
Das geht die Benutzerverzeichnisse durch, durchsucht /etc/passwd nach edn Namen. Wenn dieser nicht vorhanden ist, wird das Verzeichnis komplett gelöscht.
-nik
pushd /home
for usr in `ls`; do
popd
Das geht die Benutzerverzeichnisse durch, durchsucht /etc/passwd nach edn Namen. Wenn dieser nicht vorhanden ist, wird das Verzeichnis komplett gelöscht.
-nik
Hallo,
ist zwar schon alt, aber ich habe da noch was. Habe gerade ein wenig mit dem find-Befehl gespielt ...
find /home -type d -nouser -ok rm -rf {} ;
Der Befehl findet alle Verzeichnisse (-type d) unterhalb von /home, die keinem im System eingetragenen Benutzer gehören (-nouser) und löscht sie nach Bestätigung (-ok rm -rf {} ;).
Vielleicht braucht das ja noch jemand ...
Nik
ist zwar schon alt, aber ich habe da noch was. Habe gerade ein wenig mit dem find-Befehl gespielt ...
find /home -type d -nouser -ok rm -rf {} ;
Der Befehl findet alle Verzeichnisse (-type d) unterhalb von /home, die keinem im System eingetragenen Benutzer gehören (-nouser) und löscht sie nach Bestätigung (-ok rm -rf {} ;).
Vielleicht braucht das ja noch jemand ...
Nik