In un momento Creativo mi sono scritto un piccolo script fatto in bash , per monitorare il comportamento di una determinata Applicazione sul mio server linux.
Se l’applicazione supera i 45 secondi , con la cpu al 100% viene terminata.
Molte volte capita che se un applicazione supera i 45 secondi, inizierà a creare problemi sul server Bloccando tutti i suoi servizi.
Eccovi il codice:
#!/bin/bash
# Definisci la soglia di tempo (in secondi) e l'utilizzo della CPU (%) per il quale terminare l'applicazione
THRESHOLD_TIME=45
THRESHOLD_CPU=100
# Loop infinito per monitorare continuamente le applicazioni
while true; do
# Trova i PID delle applicazioni con il nome "NomeApp"
PIDS=$(pgrep -f NomeApp)
# Loop sui PID trovati
for PID in $PIDS; do
# Ottieni il tempo totale di CPU dall'output di 'ps' in secondi
CPU_TIME=$(ps -p $PID -o etimes=)
# Ottieni l'utilizzo della CPU dall'output di 'ps'
CPU_USAGE=$(ps -p $PID -o %cpu= | awk '{print $1}')
# Se il tempo totale supera la soglia e l'utilizzo della CPU è al 100%
if [ $CPU_TIME -ge $THRESHOLD_TIME ] && [ $(printf "%.0f" $CPU_USAGE) -eq $THRESHOLD_CPU ]; then
echo "Terminazione dell'applicazione con PID $PID (Tempo: $CPU_TIME secondi, CPU: $CPU_USAGE%)"
kill -9 $PID # Termina l'applicazione
fi
done
sleep 5 # Attendere 5 secondi prima di controllare nuovamente
done
Sii il primo a commentare