Alejandro Arco Alejandro Arco

Como reiniciar apache2 debian con crontab

linux, servidores web 2 Comentarios »

apache2 - Como reiniciar apache2 debian con crontabTodos aquellos que gestionamos servidores web dedicados en entornos Linux hemos visto en alguna ocasión como se paran los procesos que gestionan el servicio web (comúnmente apache2 en máquinas con distribuciones Linux).

Para solucionar este problema y poder reiniciar apache2 tenemos varias opciones sencillas: reiniciar apache2 a mano mediante la línea de comandos y/o reiniciar el servicio apache2 periódicamente de forma automática mediante un cron.

Estas soluciones aunque rápidas y efectivas en muchas ocasiones tienen puntos negativos, como por ejemplo, tener que estar presente cuando se cae el servicio web apache2 (para inicializarlo manualmente) y/o tener que reiniciar mediante un cron un servicio web que está funcionando correctamente…

Como reiniciar apache2 debian con crontab

De este modo, propongo una solución igualmente sencilla y más funcional… comprobar periódicamente y de forma automática mediante un cron si el servicio web está operativo y en caso negativo reiniciar apache2 sin necesidad de estar presentes.

A continuación, adjunto el código fuente del shell script para reiniciar apache2 en caso de que no este levantado el servicio web:


#!/bin/bash
######################################################
#
#  APACHE2 RESTART
#
#  This is the main apache2 restart script.
#  By Alejandro Arco - http://www.alejandroarco.es
#
#  This program is free software and is available
#  under the terms of the GNU General Public License.
#
######################################################

set -e

# Variables
NPRO_ACT="$(ps aux | grep apache2 | wc -l)"
NPRO_MIN="1"

# Script
if [ "$NPRO_ACT" -le "$NPRO_MIN" ]; then
/etc/init.d/apache2 restart
fi
  • NPRO_ACT
    Número de procesos de apache2 actuales.
  • NPRO_MIN
    Número de procesos sin iniciar apache2 (comprobar mediante el comando ps aux | grep apache2 | wc -l el número de procesos por defecto).

Posteriormente, tendríamos que darle permisos de ejecución a nuestro shell script para reiniciar apache2 mediante el comando chmod y después, agregar a nuestro cron la periocidad de ejecución del mismo con el comando crontab -e:


#
# Apache2 - reiniciar cada 3 min si no esta activo
#
*/3 * * * * /scripts/apache2/apache2_restart.sh &>/dev/null

Descargar reiniciar apache2 bash script

Os adjunto el fichero apache2_restart.sh para todos aquellos que queráis descargarlo.

Si tenéis alguna duda sobre como usar el shell script para reiniciar apache2 no dudéis en dejarme un comentario, lo responderé a la menor brevedad de tiempo posible.

MySQL, backup con mysqldump

bases de datos 4 Comentarios »

mysql - MySQL, backup con mysqldumpMySQL es un sistema gestor de bases de datos relacionales muy extendido y desarrollado como software libre con licencia GNU GPL.

El sistema gestor de bases de datos mysql es muy popular en el desarrollo web de aplicaciones bajo entornos Linux y Windows, por lo que es necesario en la administración de sistemas realizar políticas de copias de seguridad de nuestras bases de datos mysql con mysqldump.

MySQL, backup con mysqldump

Para realizar la copia de seguridad con mysqldump nuestro usuario tiene que tener los permisos necesarios para poder realizarla. Posteriormente la consola nos pedirá que introduzcamos el password del usuario gracias al atributo -p del comando mysqldump:

  • Ejemplo de backup mysql de una base de datos y todas sus tablas:
    mysqldump --opt -u nombre_usuario -p base_datos > copia_seguridad.sql
  • Ejemplo de un backup con mysqldump con compresión gzip (entornos Linux):
    mysqldump --opt -u nombre_usuario -p base_datos nombre_tabla1 | gzip > copia_seguridad.sql.gz
  • Ejemplo de copia de seguridad mysql de una tabla de una base de datos:
    mysqldump --opt -u nombre_usuario -p base_datos nombre_tabla1 > copia_seguridad.sql

Si deseamos comprimir y descomprimir ficheros posteriormente a la realización del backup con mysqldump, recomiendo visitar el enlace adjuntado (entornos Linux).

MySQL, restaurar base de datos con mysql

  • Para restaurar un backup mysql de una base de datos, nuestro usuario tiene que tener los permisos de escritura necesarios asignados a la base de datos que deseamos importar:
    mysql -u nombre_usuario -p base_datos < copia_seguridad.sql

Si queremos exportar o importar bases de datos mysql con características más concretas, recomiendo ver la ayuda del comando mysqldump y mysql respectivamente.

Las dudas respecto a la realización de copias de seguridad en mysql las responderé en los comentarios.

Publicado por Alejandro Arco.Gracias WordPress & N.Design Studio.