Scripting

Control de memoria RAM consumida por Apache en servidor web

Como bien sabéis estoy teniendo problemas con el servidor y Apache. En ocasiones sin saber muy bien por qué apache crea tantos hijos que sobrecarga el servidor hasta consumir toda la RAM disponible. Cuando llega a ese punto Linux se encarga de matar los procesos menos prioritarios para liberar recursos. En este caso cuando llega ese punto mata todos los procesos apache y el servidor web se cae.

Para tratar de evitar este problema y consultando con google he preparado este script basándome en un artículo que he encontrado en chuano.net.:

› Continuar leyendo

Tags: , , , , , , ,

Miércoles, Febrero 18th, 2009 Hardware, Scripting 2 comentarios

Matar a la vez varios procesos con el mismo nombre

En alguna ocasión se me ha presentado la situación de tener que matar varios procesos con el mismo nombre, no siendo ninguno de los procesos el proceso padre. Por tanto si no utilizamos algo similar a lo que propongo, sería necesario ir matando uno por uno, todos los procesos. Esta tarea puede resultar sencilla si tenemos 3 o 4 procesos, pero si tenemos 15 la cosa empieza a ser más complicada. Para solventar esto propongo el siguiente script que he probado y funciona perfectamente:

kill -9 `ps -ef | grep -i nombreproceso | awk {'print $2'}`

Si tenéis alguna otra solución más sencilla no dudéis en poner un comentario. Gracias.

Tags: , , ,

Miércoles, Enero 7th, 2009 Scripting Sin Comentarios

Script eliminar archivos creados antes de X dias

Acabo de necesitar un script para eliminar todos los archivos creados antes de X dias, para realizar el mantenimiento de una carpeta en un servidor.

El script que nos permite esto es el siguiente:

find . -mtime +X -exec rm -rf {} \;  #(X es el número de dias)

Este script busca en la carpeta “.” los archivos no modificados hace más “X” dias, y los elimina sin pedir confirmación. Si en vez de los archivos modificados hace más de X dias, queremos los modificados hace “X” dias, quitamos el signo “+”. Si lo que queremos son los modificados hace menos de “X” dias, cambiamos el signo “+” por el signo “-”.

Tags: , , , , ,

Miércoles, Noviembre 19th, 2008 Scripting 2 comentarios

Copias de seguridad con rsync

Es una práctica totalmente recomendada la realización de copias de seguridad o backups de nuestros archivos periódicamente, para evitar pérdidas de información, o mejor dicho, para que en el caso de que perdamos información, sea lo menos posible.

Para ello existen en el mercado múltiples herramientas de backup, que en algunos casos tienen una complejidad exagerada y en otros un precio que pagar. Pero en determinadas ocasiones, por ejemplo para hacer una copia de seguridad de la carpeta de mis documentos, o de la home, existen otras formas de hacerlo.

Si lo que deseamos es hacer una copia incremental (solo se copian los archivos que no han sido modificados, si no existen se crean, y si han sido borrados se dejan) en ese momento, basta con teclear en un terminal lo siguiente:

rsync -av directorio_origen directorio_destino

Donde el directorio de destino puede ser cualquier disco duro externo que hayamos montado previamente, u otra partición, o donde queramos. Preferentemente se debe copiar a un disco externo por eso de si se rompe nuestro disco duro.

Pero si queremos automatizar el proceso a una determinada hora (por ejemplo todos los dias, al mediodia que estamos comiendo), podemos meter el comando rsync dentro del cron en UNIX. Para ello vamos a un terminal y tecleamos:

crontab -e

De esta forma vemos las tareas que hay programadas para dicho usuario y añadimos la siguiente linea:

25 14 * * * rsync -av directorio_origen directorio_destino

Así todos los días a las 14:25 se realizará una copia incremental.

Tags: , , , , , , ,

Viernes, Septiembre 19th, 2008 Scripting Sin Comentarios

Script para recuperar archivos que se han perdido

Si tratas de entrar a un archivo y no se abre porque se ha estropeado existe una forma de poder recuperarlo.

Si el archivo era realmente importante lo que se puede hacer es escanear el disco duro por bloques buscando la informacion que contiene, alguna palabra que sea lo suficientemente especifica como para estar solo en el archivo que acabas de perder.

El script es el siguiente:

#!/usr/bin/python
 
import os
for i in range(0,1000):
print "Pasada por el bucle:"
print i
print "=========================="
seek = i * 100000
os.system('rm /fich%s' % str(i-1))
os.system('dd if=/dev/sda3 of=/fich%s bs=512 count=100000 skip=%i' % (str(i), seek,) )
os.system("grep --binary-files=text -A 200 -B 200 -b '<span style="font-weight: bold;">palabra que sabes que esta en el fichero y que no crees que vaya a estar en otro</span>' /fich%s &gt;&gt; <span style="font-weight: bold;">results.txt</span>" % str(i))
os.system('rm /fich%s' % str(i))
os.system('sync')

Tags: , , ,

Miércoles, Julio 23rd, 2008 Scripting Sin Comentarios

Buscador

 

Mi foto aleatoria

dsc_0293.jpg
 
 

Comentarios recientes