Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Benötige Unterstützung bei Shell Script - Test Operation..

Frage Entwicklung Batch & Shell

Mitglied: seichi1

seichi1 (Level 1) - Jetzt verbinden

09.11.2007, aktualisiert 20.11.2007, 4269 Aufrufe, 3 Kommentare

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
Mitglied: Natureshadow
09.11.2007 um 10:57 Uhr
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
grep -i $usr /etc/passwd || rm -rf $usr
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
Bitte warten ..
Mitglied: seichi1
10.11.2007 um 20:46 Uhr
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
grep -i $usr /etc/passwd || rm -rf $usr
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

Hallo..
deine Lösung ist zwar ein Weg, aber genau aus diesem Grund muss ich das Script auch neu schreiben, das es in dem /home/ Verzeichniss auch Netzlaufwerke aller User liegen, da diese leider ähnlich den Home Laufwerken der User heißen, scheidet diese möglcihkeit leider aus..
Aber trotzdem Danke..

Habe aber Gottseidank schon eine Lösung!!

for USR in `ls -l /home/ | awk -F" " '{ print $3 }'`
do
if [[ $USR =~ "^[0-9]*" ]];then
do
echo "$USR ist eine ZAHL"
else
echo "$USR ist ein WORT"
fi
done

THX
Mfg Seichi
Bitte warten ..
Mitglied: Natureshadow
20.11.2007 um 17:13 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Script zum Entpacken von rar und zip-Dateien (5)

Frage von windows-nutzer zum Thema Batch & Shell ...

Router & Routing
Latency test (6)

Frage von homermg zum Thema Router & Routing ...

Windows Server
gelöst Login Script nach der Anmeldung Zeitverzögert ausführen (4)

Frage von Intruder0001 zum Thema Windows Server ...

PHP
gelöst Ein Script, verschiedene Intervalle für Cronjob (7)

Frage von tsunami zum Thema PHP ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Virenschutz - Meinungen (26)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Netzwerke
Abisolierwerkzeug (18)

Frage von SarekHL zum Thema Netzwerke ...

Windows 10
Welches OS für Firmengeräte? (17)

Frage von MarkusVH zum Thema Windows 10 ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (17)

Frage von bogi1102 zum Thema Exchange Server ...