PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell Script, um User zu kicken



Vader
19-02-2002, 07:59
Servus!
Ich will, bzw. muß ein Shell Script shreiben, mit dem ich User, bzw. seine Prozesse kicken kann. Das Script soll dazu dienen, wenn jemand Wartungsarbeiten an der Unix Kiste ausführt, dann werden einfach alle user, die angemeldet sind, außer dem User, der gerade das Script ausführt, bzw. der an der Kiste bastelt, gekillt. Irgendwie who am i oder logname ausschliessen oder ähnliches.
Es sollen alle User angezeigt werden die angemeldet sind, außer dem User, der das Script ausführt, am besten mit nummern aufgelistet. Mit diesem Befehl funzt es ganz gut who | awk '{print NR,$1,$6}' , nur wie schließe ich den Basteluser aus?
Wenn ein User mehrere Prozesse laufen hat, sollen diese unter einer Nummer zusammengefasst werden. Die Prozesse von einem und demselben user anhand seiner User ID oder seiner IP identifizieren.
Da ich noch nicht soooooooooo viel Erfahrung mit Shell Scripten habe, probiere ich alles mal aus, aber nichts will so richtig funktionieren.

Ich hoffe jemand kann mir helfen. Danke im Voraus.

melody lee
19-02-2002, 14:36
kill -9 `ps au | grep \`who | sed /\$LOGNAME/d | awk '{ print $1 }'\` | awk '{print $2 }'`

Aber OBACHT, UNGETEST!! Mach hinter das "sed"-Konstrukt noch eins/mehrere für User, deren Pozesse Du keinesfalls abschiessen willst.

Die Sache mit der NUmmer für die mehreren PIDs eines Nutzers versteh ich grad nicht.

melody lee
19-02-2002, 14:38
Ich hätte es mir denken können.... bei mir sehen die letzten beiden Zeichen aus wie "hoch x" ist aber natürlich ein Hochkomma und ein Backtick.

Vader
20-02-2002, 07:32
Danke, ich werds ausprobieren.

Mit Hilfe der Nummer, sollen Prozesse, die denselben User haben unter einer Nummer zusammengefasst werden.
root hat z.B. 20 Prozesse laufen, user1 hat 30 Prozesse laufen, und die sollen übersichtlcih zusammengefasst werden.

Z.B. 1 root .....
2 user1 .....
3 user2 .....

Ich schau mal. Ich werde mal weiterbasteln :)