Backup automático con envio por e-mail para MikroTik

  • Autor de la entrada:
  • Categoría de la entrada:Tutoriales
  • Tiempo de lectura:6 minutos de lectura

Una de las tareas esenciales en la administración de dispositivos de red, es la gestión de las configuraciones. Y de hecho lo mas importante es siempre tener un archivo de respaldo (backup) en caso de que nuestro equipo pierda la configuración o se dañe.

En MikroTik tenemos la posibilidad de ejecutar esta tarea de forma automática y además podemos enviar el archivo por mail.

Entonces, para poder configurar esta funcionalidad, vamos a necesitar recorrer tres secciones: Scheduler, Scripts e E-Mail.

Sección “Scheduler”

“Scheduler” significa “Programador de tareas” y desde ahí vamos a realizar una configuración para que el proceso de backup se ejecute con los criterios apropiados para cada escenario. Por ejemplo, hay equipos que requieren backup mensual, otros semanal y otros diarios.

Un criterio interesante es correr este proceso por las madrugadas, por ejemplo 3:30 de la mañana.

Código del scheduler, que genera el proceso diariamente a las 3:30 de la mañana.

/system scheduler
add name=schedule_autobackup-por-mail \
start-date=jan/01/2021 start-time=03:30:00 interval=1d \
on-event=script_autobackup-por-mail

Sección “Scripts”

En esta sección vamos a dejar el código que efectivamente va a hacer el proceso de generar el archivo de backup, para luego enviarlo por mail.

La ventaja de tenerlo por separado de Scheduler, es que puedo ejecutarlo en cualquier momento.

Algo a destacar de este script es que genera dos archivos, uno con extensión .backup y otro .rsc. Si bien la diferencia entre estos dos la explicaremos en otro artículo, es importante siempre generar los dos tipos de archivos. En definitiva y básicamente el .backup se utiliza como punto de restauración en el mismo equipo en el que se generó y el .rsc sirve en caso de necesitar migrar a otro equipo.

Código limpio del script. Sólo se debe configurar la variable “MailDestinatario”, que es a donde nos van a llegar los archivos.

{
# Variables
:local MailDestinatario "tumail@mail.com"

# Codigo
:local EquipoNombre [/system identity get name]
:local MailFecha [/system clock get date]
:local MailAsunto "Backup automatico - $EquipoNombre - $MailFecha"
:local MailArchivos "$EquipoNombre.rsc,$EquipoNombre-users.rsc,$EquipoNombre.backup"
/export file=$EquipoNombre show-sensitive
/user export file="$EquipoNombre-users"
/system backup save name=$EquipoNombre
/delay 5;
/tool e-mail send to=$MailDestinatario \
subject=$MailAsunto \
body="Archivos adjuntos. Mail automatico, no responder." \
file="$EquipoNombre.rsc,$EquipoNombre-users.rsc,$EquipoNombre.backup"
:delay 1;
/file remove $MailArchivos
:delay 5;
/log warning "Autobackup ejecutado correctamente."
}

Código listo para copiar y pegar en la consola (recodar cambiar la dirección de mail).

/system script
add dont-require-permissions=no name=script_autobackup \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\r\
    \n# Variables\r\
    \n:local MailDestinatario \"tumail@mail.com\"\r\
    \n# Codigo\r\
    \n:local EquipoNombre [/system identity get name]\r\
    \n:local MailFecha [/system clock get date]\r\
    \n:local MailAsunto \"Backup automatico - \$EquipoNombre - \$MailFecha\"\r\
    \n:local MailArchivos \"\$EquipoNombre.rsc,\$EquipoNombre-users.rsc,\$EquipoNombre.backup\"\r\
    \n/export file=\$EquipoNombre show-sensitive\r\
    \n/user export file=\"\$EquipoNombre-users\"\r\
    \n/system backup save name=\$EquipoNombre\r\
    \n/delay 5;\r\
    \n/tool e-mail send to=\$MailDestinatario \\\r\
    \nsubject=\$MailAsunto \\\r\
    \nbody=\"Archivos adjuntos. Mail automatico, no responder.\" \\\r\
    \nfile=\"\$EquipoNombre.rsc,\$EquipoNombre-users.rsc,\$EquipoNombre.backup\"\r\
    \n:delay 1;\r\
    \n/file remove \$MailArchivos\r\
    \n:delay 5;\r\
    \n/log warning \"Autobackup ejecutado correctamente.\"\r\
    \n}"

Sección “E-Mail”

En esta sección se encuentra la configuración del cliente integrado de email de RouterOS. Sólo necesitamos rellenar campos con los datos de una cuenta de mail que funcione. Recomendamos utilizar un servidor de correo propio o un SMTP gratuito como el Turbo SMTP o SendGrid.

/tool e-mail
set address=smtp.server.com \
from="Nombre <cuenta@smtp.server.com>" \
user=cuenta@smtp.server.com \
password=KPtR2yCk8kusw6ep

Para probar el envio de correo, utilizar el siguiente comando. Si todo salió bien en el log deberíamos ver un mensaje parecido a este: sent <Correo de prueba> to: tumail@mail.com.

/tool e-mail send to=tumail@mail.com subject="Correo de prueba"

Espero este articulo te haya resultado útil. ¡Hasta al próxima!