Backup Mikrotik

No solo un simple Backup Mikrotik es lo que vamos a ver en el siguiente articulo, ya que vamos a dar un paso mas a la automatización de procesos para tener un backup, saneado y logisticamente ubicado en dos ubicaciones totalmente distintas.

backup mikrotikEn este articulo que se centra en la automaticacion del backup mikrotik, vamos a crear un backup diario, a dos ubicaciones (FTP y SFTP), y cada una en soportes diferentes, es decir el FTP, va a estar en un NAS de Qnap y el SFTP en un servidor.

Mostraré igualmente como se monta el FTP y el SFTP en cada uno de los dispositivos, para que sigais paso a paso todo el proceso y vosotros mismos lo podais aplicar en vuestro hogar o empresa, ya que la comodidad y tranquilidad que esto nos va a reportar, es incalculable. Pues sin mas dilación, pasemos a describir los pasos….

Bien, pues los pasos a seguir son los siguientes:

1- Creamos la secuencia de comandos para hacer un backup mikrotik.
2- Nombre identificativo como «Nombre dispositivo-año-mes-dia».
3- Probamos envio a SFTP como a FTP.
4- Creación del script.
5- Automatizamos frecuencia y borrado residual de la carpeta local.

1- Secuencia de Comandos mikrotik

La secuencia básica para hacer un simple backup es la siguiente:

/system backup save name=test

Por lo que si queremos hacer un backup con nuestra configuración actual, solo tendriamos escribir dicha línea y automáticamente en la carpeta raiz, de la carpeta del mikrotik se guardaría un archivos con la extension backup «test.backup».

Por supuesto que hay mas opciones, pero como nuestro cometido es la automatización y no la parametrización del comando backup, con lo básico nos bastará para ver los siguientes puntos.

2- Nombre Identificativo al nombre del fichero.

Todo correcto hasta ahora, pero si guardamos todos los dias, un backup con el nombre de test.backup, visualmente no tenemos informacion del dispositivo al cual hemos hecho el backup, ni el dia ni la hora… y mucho menos el año 🙂 .

La forma de hacer un backup con el formato que deseamos, es, introduciendo lo deseado en una variable y hacer el backup con el nombre de esta variable, es decir, si lo que queremos es esto:

/system backup save name=cpd1-2019aug31

Lo que significa «nombre dispositivo-año-mes-dia», lo podemos hacer de dos formas, estructurada, es decir el nombre que deseamos lo metemos en una variable y esta la utilizamos para hacer la llamada al backup, o lo hacemos todo en una línea. Para una mejor visualizacion vamos hacerlo en dos partes:

1- Introducimos el nombre deseado en una variable.

Desde la misma línea de comandos del mikrotik, escribimos:

/global backuptime ([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]);

Esta línea, introduce el nombre del dispositivo «/system identity get name», el año, mes y día con «/system clock get date» y lo ponemos dentro de la variable backuptime.

Para verlo mas claro, solo teneis que ejecutar el comando:

:put ([system clock get date])

aug/31/2019

El comando «:pick» significa extraer o coger la cadena entre los números finales, es decir:

:pick [/system clock get date] 7 11 >> es coger la cadena que empieza en la posicion 7 y acaba en la 11 (no inclusive), es decir:

aug/31/2019 –> a(0)u(1)g(2)/(3)3(4)1(5)/(6)2(7)0(8)1(9)9(10)

De la posición 7 a la 11(no inclusive) van «2019»

De la posición 0 a la 3(no inclusive) van «aug»

De la posición 4 a la 6(no inclusive) van «31»

2- Ejecutamos el comando backup mikrotik con la variable creada.

Por lo que con este comando en la variable $backuptime, se guardaria la cadena «cpd1-2019aug31». Con este dato ya podemos hacer el backup, diario sin problemas ya que toda la información va en el nombre del fichero guardado.

/system backup save name=$backuptime

3- Envío a FTP y SFTP

Antes de nada, los servicios de FTP y SFTP deben de estar funcionando, por lo que en el caso del FTP, el servicio lo vamos a montar en un Qnap como se puede ver en la imagen.

FTP QNAP

Igualmente para el servicio SFTP, vamos a utilizar un servidor o cualquier ordenador de nuestra casa o empresa para montar el servicio en el mismo. Tenemos una solución gratuita de SolarWinds en la página: https://www.solarwinds.com/es/free-tools/free-sftp-server . 

La instalación es bien sencilla, y las configuraciones las que vienen por defecto como se puede mostrar en la imagen.

sftp solarwinds

Bien, pues vamos a probar el enviro a cada uno de los servicios, ya que en ambos sistemas hemos creado un usuario con el nombre de «backup» y el password de «backup» para este laboratorio.

El comando para el envio al FTP, seria:

/tool fetch address=192.168.20.10 src-path=$backuptime user=backup password=backup dst-path=$backuptime port=21 mode=ftp upload=yes

Esta línea significa:

fecth: Instruccion para envio.
address: Destino del servidor FTP.
src-path: Fichero a enviar.
user: usuario autentificación ftp.
password: password autentificación ftp.
dst-path: nombre fichero destino.
port: Puerto de escucha del servidor ftp.
mode: Modo del protocolo de envío.
upload: modo de envio, subida o bajada.

El comando para el envío al SFTP, sería:

:global archive ("sftp://192.168.20.20/".$backptime)
/tool fetch upload=yes url=$archive src-path=$backuptime user=backup password=backup;

Para acortar el comando he introducido la dirección del servidor en la variable $archive junto al nombre del fichero a guardar.

fecth: Instruccion para envio.
url: Direccion del servidor junto al modo y nombre fichero.
src-path: Fichero a enviar.
user: usuario autentificación ftp.
password: password autentificación ftp.
upload: modo de envio, subida o bajada.

4- Creación del Script Mikrotik.

Pues con todos estos datos el script quedaría de la siguiente forma, eso sí cambiando la declaracion de las variables de global a local, ya que no queremos que una vez que el script, haya sido ejecutado las variables queden en memoria, por lo que la vida al ser locales es mientra el script esté corriendo.

:local backuptime ([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]);
/system backup save name=$backuptime;
set backuptime ($backuptime.".backup")
:local archive ("sftp://192.168.20.20/".$backuptime)
delay delay-time=2;
/tool fetch upload=yes url=$archive src-path=$backuptime user=backup password=backup;
delay delay-time=2;
/tool fetch address=192.168.20.10 src-path=$backuptime user=backup password=backup dst-path=$backuptime port=21 mode=ftp upload=yes
file remove $backuptime;

Al final si os fijais hay una linea nueva que no hemos comentado «file remove $backptime». Esta línea una vez hecho el backup y enviado al ftp y sftp, borra de la carpeta local del mikrotik dicho backup, para mantener limpia la misma y no acumular basura.

5- Automatizamos Frecuencia de ejecución.

Pues la ultima parte, ya es la mas sencilla de los pasos, ya que solo tenemos que ir al menú de la izquierda:

scheduler mikrotik

Creamos una automatización, insertando el nombre, la hora de empiece, el intervalo o tiempo entre copia y copia, y para finalizar el nombre del Script.

Todo esto está explicado en el siguiente vídeo para que no te pierdas detalle, siguiendo, todos los pasos que aquí he expuesto. Añado link, junto a una solicitud para subscribirse en youtube, ya que estarás al día de cualquier publicación que suba, como tu agradecimiento al esfuerzo por enseñar de la forma mas sencilla y cómoda para tí que he podido encontrar y espero mejorar 😀 .

Gracias por tu dedicación y apoyo para seguir creciendo junto a tí.

Gracias y hasta pronto!!!