Pasar al contenido principal
Alexys Lozada
José Luján
Manuel Rodriguez
José Luján
Luis Avilés
Álvaro Felipe
José Luján
Beto Quiroga
Jonathan MirCha
Jonathan MirCha
Álvaro Felipe
Alexys Lozada, Álvaro Felipe, Jonathan MirCha
Beto Quiroga
Alexys Lozada
Alexys Lozada
José Luján
Álvaro Felipe
Álvaro Felipe
Jonathan MirCha
Jonathan MirCha
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Camilo Adobe
Álvaro Felipe
José Luján
Jonathan MirCha
Álvaro Felipe
Álvaro Felipe
Beto Quiroga, Alexys Lozada
Álvaro Felipe
Juan Villalvazo
Luis Avilés
Jonathan MirCha
Jonathan MirCha
Jonathan MirCha

Administra tu servidor Linux como un pro con tareas automatizadas

En este artículo te explico como crear backups automáticos todos los días. Con el mismo proceso puedes automatizar otras tareas.

Administra tu servidor Linux como un pro con tareas automatizadas

En nuestro trabajo como DevOps debemos realizar tareas periódicas que nos demandan tiempo. Actualizar el sistema operativo, las aplicaciones, los paquetes instalados, limpiando archivos basura, realizando backups de la información, entre otros.

Muchas operaciones requieren de una revisión / aprobación manual ya que puede ser que no queremos actualizar algún paquete o debemos ver si los archivos que estamos borrando son realmente innecesarios. Pero también existen procesos manuales que podemos automatizar, ya que se deben realizar en una fecha / hora específica y siempre se realizan los mismos pasos. Así que veamos un ejemplo sencillo de cómo automatizar el proceso de realizar backups.

Recomendado: Administración de servidores Linux Desde Cero

Comencemos creando un archivo ejecutable que contenga los comandos para realizar el backup de una base de datos de postgresql. Un archivo ejecutable puede ser un archivo binario o un archivo plano con comandos que deben ejecutarse. Comenzaremos creando un archivo plano llamado backup.sh (en cualquier lugar del sistema de archivos) y en dicho archivo colocaremos lo siguiente:

#!/bin/bash

now=`date +"%Y%m%d_%H%M%N"`
dest="/var/backups/${now}.sql"

pg_dump -d my_data_base -U my_user -w -f $dest

El anterior script creará una copia de la base de datos de my_data_base en la carpeta /var/backups/ con la fecha de hoy.

Ahora vamos a automatizarlo, y para eso utilizaremos CRON que ya viene con los sistemas Linux. Es un administrador de procesos que se ejecutan en determinados intervalos de tiempo que pueden incluso de un minuto (algo espectacular).

Para configurarlo, debemos abrir el archivo /etc/crontab

$ sudo vim /etc/crontab

Este archivo tiene la siguiente estructura:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Recomendado: Aprende Bases de Datos Desde Cero

Para agregar una nueva programación agregaremos una lína con la siguiente estructura:

  1. Minuto (0-59)
  2. Hora (0-23)
  3. Día del mes (1-31)
  4. Mes (1-12)
  5. Día de la semana (0-6) (Donde 0 es domingo)
  6. Usuario con el que quieres ejecutar el comando
  7. Comando a ejecutar

Siguiendo la estructura anterior, vamos a registrar nuestro archivo agregando una línea al final del archivo:

0 23     * * *  root  /ruta/de/tu/backup.sh

Lo que dice esta línea es que en el minuto 0 de las 23 horas de cada día (*), de cada mes (*), todos los días de la semana (*) con el usuario root se va a ejecutar el archivo /ruta/de/tu/backup.sh y puesto que este archivo tiene los comandos para ejecutar una copia de la base de datos, ya tenemos backups automáticos todos los días a las 11pm. 

Ahora ya puedes automatizar tus procesos sin excusas. Cuéntame qué haces tú para automatizar los procesos en Linux o en otros sistemas operativos.

Suscríbete al blog de EDteam

Ingresa tu correo electrónico para recibir nuestro boletín semanal