Main | Chroot con VsFtp »
Como Borrar Procesos Defunt (deleted) con script utlizando lsof+awk
By claudio | Julio 29, 2008
Por fin mi primer artículo. Bueno, debido que muchos sistemas de bases de datos hacen correr procesos en forma temporal, como un reports(oracle), estos pueden quedar existiendo pese que para el fin por el cual fueron creados ya no exista. Como consecuencia “secuestran” recursos del sistema como CPU, RAM y muchas veces disco, lo he visto en bases de datos oracle. Ahora, para ver estos procesos podemos correr la siguiente linea:
#lsof | grep deleted
Con esto nos aparecerán los procesos sin utilizar por la apliacción original(en mi caso oracle) pero que siguen existiendo a nivel de Sistema Operativo. Para automatizar el borrado de estos podemos crear un script como el que sigue:
#!/bin/sh
LOGFILE=mata-defun-log.`date +%y-%m-%d` #creamos variable archivo log
lsof | grep deleted | awk ‘{print $2}’ > $LOGFILE #almacenamos los PID en archivo
for i in `lsof | grep deleted | awk ‘{print $2}’` #iteracion para procesos defunt
do
kill -9 $i # matamos procesos en el for
done
Con esto matamos de una vez todos estos procesos que molestan (deleted o defunt). Si queremos automatizar la operación acada cierto tiempo podemos utilzar cron:
#cron -e
00 */3 * * * root /home/user/mata_defunt.sh
Esto ejecutará cada 3 horas este script almacenado en /home/user/mata_defunt.sh
Se reciben comentarios. SLDS Claudio Hormazábal.
Topics: Artículos |
Comments
You must be logged in to post a comment.