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.:
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.
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 “-”.
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_destinoDonde 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 -eDe 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.
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 >> <span style="font-weight: bold;">results.txt</span>" % str(i)) os.system('rm /fich%s' % str(i)) os.system('sync')
Buscador
Mi foto aleatoria
Categorías
- Aplicaciones (32)
- Deportes (4)
- Exponentcms (15)
- Firefox (4)
- Fotografía (15)
- Hardware (17)
- HTML CSS JavaScript y PHP (13)
- Humor (5)
- Internet (34)
- Musica (20)
- Posicionamiento Seo (12)
- Programación (7)
- Scripting (6)
- Seguridad (24)
- Sin categoría (2)
- Sistemas operativos (6)
- SQL-Bases Datos (3)
- Varios (83)
- Virtualización (21)
Enlaces
Comentarios recientes
- Ala que bueno jajaja, muy original.
- es una verguenza son unos maleducados , se creen l...
- Hola, soy nuevo con el virtualbox y va mas rapido ...
- Y este sabado habra otra concentración policial en...
- Muy bueno!!! Lo hacen muy bien.Muy gracioso, jeje....
Archivos
- Marzo 2010 (1)
- Febrero 2010 (5)
- Enero 2010 (4)
- Diciembre 2009 (5)
- Noviembre 2009 (9)
- Octubre 2009 (4)
- Septiembre 2009 (9)
- Agosto 2009 (9)
- Julio 2009 (20)
- Junio 2009 (8)
- Mayo 2009 (13)
- Abril 2009 (12)
- Marzo 2009 (13)
- Febrero 2009 (18)
- Enero 2009 (15)
- Diciembre 2008 (14)
- Noviembre 2008 (14)
- Octubre 2008 (18)
- Septiembre 2008 (7)
- Agosto 2008 (8)
- Julio 2008 (3)
- Octubre 2007 (4)
