Skip to main content

Cómo reiniciar un servidor a una hora dada.

Si bien no me gusta mucho la idea de reiniciar un servidor, hay un cierto orgullo en que permanezca durante mucho tiempo sin necesitar ser reiniciado, en VPS con pocos recursos puede ser conveniente reiniciarlos para minimizar problemas con las aplicaciones servidas por él.

Podríamos reiniciar los servicios uno a uno para obtener algo similar, reiniciar mysql, apache, etc, pero además de ser un poco más complejo no sería mucho más rápido que reiniciar una VPS. Las VPS realmente reinician muy rápido. En menos de 15 segundos suelen estar de nuevo operativas. En tan breve periodo casi no da tiempo a darse cuenta que el servidor no esta disponible. Por lo menos no en pequeñas VPS que no reciben miles de visitas al día.

Lógicamente el reinicio lo podemos programar para que sea en las horas de menos afluencia, de modo que cause la más mínima molestia a los visitantes. Considerar también que pueda no coincidir otra tarea programada, por ejemplo la generación del informe de LogWatch, tarea que habitualmente se programa para ser realizada entre las 4 a.m. y las 6 a.m.

Nos vamos a servir del servicio crontab disponible en nuestros servidores Linux. Deberemos acceder como root a la configuración de crontab en vez de con nuestro usuario. Esto lo podemos lograr tan fácilmente como:

O alternativamente podemos hacernos root con el comando su y ejecutamos contrab del siguiente modo.

Con esto se nos abrirá un editor (si es la primera vez nos dará a elegir entre varios, nano es el más fácil) con el que podemos añadir tareas en la configuración de crontab. Simplemente debemos añadir tras la última línea del texto ya presente la tarea para reiniciar el servidor. Puede ser algo como:

El número 15 indica los minutos y el número 6 indica la hora. Al final de la línea aparece la orden a ejecutar, que como deseamos, es reiniciar el servidor. Guardamos los cambios. A partir de ahora la VPS se reiniciará a las 6:15 de cada día. Podemos cambiar por la hora que más nos convenga.

Lo aquí explicado funciona en Ubuntu Linux Server. Con seguridad funcionará en muchos otros sistemas Linux ya que el servicio cron es estándar en cualquier sistema Linux.

Terminal

Configurar cortafuegos UFW en servidor Ubuntu 12.04 LTS

Uncomplicated Firewall o UFW es un cortafuegos básico que funciona muy bien y es sencillo de configurar.

Para instalarlo:

sudo apt-get install ufw

Una vez instalado podemos conocer el estado del cortafuegos con:

sudo ufw status verbose

Que en este paso nos dirá que esta inactivo.

Agregamos una reglas para los servicios ssh y http:

sudo ufw allow ssh
sudo ufw allow http

Y ahora lo activamos sin que interrumpa la conexión ssh al servidor con:

sudo ufw enable

Podemos probar que tal hace su trabajo si lo tenemos instalado con nmap:

sudo nmap -r -v -O servidor.com

Donde servidor.com lo sustituimos por nuestro servidor.

Error al actualizar Kernel en VPS XEN con Debian 6 Squeeze

Sucede que cuando el gestor de paquetes trata de actualizar el kernel Linux (por ejemplo el kernel linux-image-2.6.32-5-686-bigmem) XEN no permite a la VPS acceder al MBR y grub falla. Este inconveniente se produce en VPS que usan como sistema operativo Debian 6 Squeeze.

El proceso muestra el error así:


Setting up linux-image-2.6.32-5-686-bigmem (2.6.32-45) ...
Running depmod.
Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.32-5-686-bigmem
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 2.6.32-5-686-bigmem /boot/vmlinuz-2.6.32-5-686-bigmem
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 2.6.32-5-686-bigmem /boot/vmlinuz-2.6.32-5-686-bigmem
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... Generating /boot/grub/default file and setting the default boot entry to 0
entry not specified.
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.32-5-686-bigmem.postinst line 799,  line 2.
dpkg: error processing linux-image-2.6.32-5-686-bigmem (--configure):
 subprocess installed post-installation script returned error exit status 2

Resolver el error sin embargo, es tan fácil como eliminar parte de grub, cosa que no necesitamos en nuestra VPS. Lo haremos con el comando:

apt-get remove grub-legacy grub-common