#!/bin/sh
# http://www.lawebdelprogramador.com #
#Funcion para eliminar todos los procesos wget del sistema con mas de 10 minutos
#de antiguedad.
#Cogemos el id,fecha,proceso que contenga wget y lo guardamos en un fichero tmp
ps=`ps -Ao pid,bsdstart,comm | grep wget > tmp`
#contamos las lineas del fichero
pslines=`cat tmp | wc -l`
#determina el tiempo máximo que se dejara un proceso corriendo antes de matarlo
maximoMinutos=10
#si hay lienas en el fichero
if [ $pslines -gt 0 ];then
#cogemos los minutos totales de la fecha del sistema
horaSistema=`date +%k`
minutoSistema=`date +%M`
minutosTotalesSistema=`expr $horaSistema * 60 + $minutoSistema`
i=1;
#bucle por todas las filas del fichero
while [ $i -le $pslines ];do
#cogemos una linea
line=`head -$i tmp | tail -1`
#cogemos la hora de inicio del proceso
horainicio=`echo $line | cut -d' ' -f2`
#pasamos la hora a minutos
hora=`echo $horainicio | cut -d: -f1`
minuto=`echo $horainicio | cut -d: -f2`
minutosTotales=`expr $hora * 60 + $minuto + $maximoMinutos`
#si el proceso lleva mas de 10 minutos en funcionamiento
if [ $minutosTotales -lt $minutosTotalesSistema ];then
#cogemos el id del proceso
idEliminar=`echo $line | cut -d' ' -f1`
#eliminamos el proceso
kill $idEliminar
fi
let i=i+1
done
fi
#eliminamos el fichero temporal
rm tmp
Comentarios sobre la versión: Versión 1 (0)
No hay comentarios