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, 4279 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 ..
Ähnliche Inhalte
Batch & Shell
Findstr Path CMD ja - Batch Script nein - FireFox Profiles (2)

Frage von ChrisIO zum Thema Batch & Shell ...

Peripheriegeräte
PowerChute Business Edition startet das Script nicht (11)

Frage von merome zum Thema Peripheriegeräte ...

Weiterbildung
gelöst Unterstützung bei Gehaltsverhandlungen (24)

Frage von 133566 zum Thema Weiterbildung ...

Windows Userverwaltung
gelöst Powershell MailInfo Script über Locked Accounts (5)

Frage von LordNicon79 zum Thema Windows Userverwaltung ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...

Windows Server
gelöst Einzelnes Windows Update über GPO deinstallieren (16)

Frage von lordofremixes zum Thema Windows Server ...