Heel veel specifieke sessie’s de nek omdraaien

Op een server hadden we een probleem dat op gegeven moment een cron job heel veel hangende sessie's had geproduceerd..
De server herstarten was geen optie, alle sessie's moesten gewoon de nek worden omgedraaid…

Maar om nu 140x het kill commando uit te gaan voeren…..

Maar gelukkig kunnen we scripten, ook op de command line…

Eerst een selectie maken van de betreffende session ID's:

# ps -ef | grep local/bin | awk '{print $2}' >/tmp/sessions.txt

Uitleg:
ps -ef: Geeft alle openstaande sessie's weer.
grep local/bin: haalt alleen de sessie's eruit die 'local/bin' in de regel hebben staan.
awk '{print $2}': haalt de 2e kolom (waar de sessie-id's in staan) uit de weergave.
>/tmp/sessions.txt: en schrijf het resultaat in het bestand /tmp/sessions.txt

Dan de sessie-id's de nek omdraaien:

# while read line; do kill "$line"; done </tmp/sessions.txt

Uitleg:
while read line; Lees alle regels in sessions.txt, en zet de huidige regel in variabele $line.
do kill "$line"; Voer het commando 'kill' uit, met als optie de huidige regel. Yell
done Ga verder met de volgende regel
</tmp/sessions.txt Gebruikt dit bestand als input.

Het is even zoeken, maar het scheelt een hoop tik werk….. Smile