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.
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…..