#!/bin/sh
#
#  my.killall.sh
#
#
#  Funktion    : Killen aller User in einem Mandanten mit Ausnahmen
#
#  Autor       : Ralf Billmaier <abas-rb>
#  Version     : 1.2
#  Stand       : 30.10.2022      
#
#
#
#
# usage my.killall.sh  "string" für grep -v <String> pa.dat.
# Im string werde die User aufgeführt, die überleben sollen !
# PROZESS GC: darf nicht abgebrochen werden
#
# my.killall.sh  "GC:|SQL|ANALYSER|Schmidt"
 
if [ "$1" == "" ] ; then
                KILLSTRING=PhAnToMiAs
else
                KILLSTRING=$1
fi
 
# wie soll ich umbringen ?
which killclient.sh >/dev/null 2>/dev/null
#KILLCLIENTAG=$?
KILLCLIENTAG=1
 
#Diese Zeile ist original
grep -v -E "$KILLSTRING" pa.dat  > rmtmp/X.KILLLISTE.TMP
 
#Diese zeile ist drin, weil wir User älter als 2 tage killen wollen, suche es dir aus, entweder oder J
#grep  $(date -d "2 days ago" +"%d.%m.%Y")  pa.dat   > rmtmp/X.KILLLISTE.TMP
 
while read LINE
                do
                if [ $KILLCLIENTAG -eq 0 ] ; then
                               # AG Killer
                               KILLPID=$(echo $LINE | cut -f5 -d" ")
                               killclient.sh  -n  $KILLPID .
                else
                               # selbst killen
                               KILLPID=$(echo $LINE | cut -f1 -d" ")
                               kill -1  $KILLPID
                               ps $KILLPID > /dev/null && sleep 4 && kill -9 $KILLPID
                fi
                done < rmtmp/X.KILLLISTE.TMP
