Ciao a tutti stavo cercando di fare uno script bash che controlla se ci sono dei processi che superano il 50% di utilizzo della cpu, in caso positivo li termina tramite il comando kill.
Per sapere i processi in quel momento basta redirigere l'output del comando ps -aux su un file e poi leggere da questo stesso file.
Riporto qua sotto un pezzo del file di input dato dal comando ps -aux(anche se non ha una formattazione comprensibile):
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 2528 1408 ? Ss 12:24 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S< 12:24 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 12:24 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S< 12:24 0:00 [ksoftirqd/0]
Avendo questo tipo di file in input a me serve solo leggere l'user il pid ( necessario per poter dare il comando kill) e il valore d cpu; confrontare se questo valore è maggiore di 50 (anche se non so come gestire la virgola) e se è maggiore killarlo.
Posto qua sotto quello che mi è venuto in mente per fare questo script:
codice:#!/bin/bash while true do sleep 15 ps -aux > tmp read line while read user pid cpu others < tmp do if [ $cpu -gt 50 ] then kill -9 $pid fi done done

Rispondi quotando