#!/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 |