EdgeMAX – Autobackup and send via e-mail – Fully Automatic.


Buenas noches Gente,

En el dia de hoy les voy a mostrar como realizar backups automaticos y enviarlos por mail todos los dias en

EdgemaX, antes que nada queria agradecer a Sebastian ya que esta guia fue una variaciòn de su Script.

————

Script Original:

https://damsteen.nl/blog/2017/07/20/implement-daily-edgerouter-backup

————

Manos a la obra

Login en Edgemax

[email protected]# sudo su

[email protected]# configure

[email protected]# cd /config/user-data/

[email protected]# vi date-offset.pl


#!/usr/bin/perl -w
use Time::Piece;
use Time::Seconds;

my $offset = $ARGV[0];
my $t = localtime() - (ONE_DAY * $offset);
print $t->ymd;

————

REEMPLAZAR LA LINEA [email protected] POR EL CORREO DESTINO.

[email protected]# vi config-backup.sh


#!/bin/bash

DATE=$(date +%F)
TARGET_FILENAME=edgeos-backup-$DATE.1tar.gz
TARGET_DIR=/tmp
TARGET_PATH=$TARGET_DIR/$TARGET_FILENAME
SOURCE_DIR=/config
DATE_OFFSET_SCRIPT=/config/user-data/date-offset.pl

BACKUP_RETENTION=1

function date-offset {
$DATE_OFFSET_SCRIPT $1
}

function delete-older-remote-file {
OLDER_DATE=$(date-offset $1)
OLD_FILENAME=edgeos-backup-$OLDER_DATE.1tar.gz

echo "... Going to delete older file $OLD_FILENAME"
rm -rf $OLD_FILENAME
}

echo "Backup /config..."
rm $TARGET_PATH 2> /dev/null
tar cvf $TARGET_PATH $SOURCE_DIR

echo "Copiando ultimo Backup a TMP"
cp $TARGET_PATH $TARGET_FILENAME

#END_SCRIPT

echo "Enviando la configuracion a tu correo..PLEASE WAIT 30 SECONDS"
echo "In the restore moment remember change the extension file 1tar to tar.gz" | mutt -s "AUTOBACKUP-EDGEMAX" -a /tmp/*.1tar.gz -c [email protected]

echo "Configuracion enviada con exito !!! Limpiando bkp file en directorio /tmp..."
#rm $TARGET_PATH $OLD_FILENAME
cd /tmp
rm -rf $OLD_FILENAME
rm -rf /config/user-data/*.1tar.gz

#COMENTAR SI QUEREMOS DEJAR ALGUNOS BACKUPS CON ESTA LINEA ACTIVA LIMPIA TODOS LOS BKP DE TMP
rm -rf /tmp/*.1tar.gz

echo "Clean up older remote files..."
for i in $(seq $BACKUP_RETENTION $(($BACKUP_RETENTION + 5)));
do delete-older-remote-file $i
done

exit 0

————

CONFIGURAMOS PERMISOS DE EJECUCIÒN DE LOS SCRIPTS

[email protected]# chmod +x /config/user-data/config-backup.sh

[email protected]# chmod 777 /config/user-data/date-offset.pl


INSTALAMOS LOS SERVICIOS SMTP Y ENVIO DE ARCHIVOS : ELEGIR OPCION1 o OPCION2 PARA DESCARGAR LOS PAQUETES


OPCION 1

————

[email protected]# curl -O http://ftp.br.debian.org/debian/pool/main/m/msmtp/msmtp_1.4.28-1_mipsel.deb
[email protected]# curl -O http://ftp.br.debian.org/debian/pool/main/g/gsasl/libgsasl7_1.8.0-2_mipsel.deb
[email protected]# dpkg -i libgsasl7_1.8.0-2_mipsel.deb
[email protected]# curl -O http://ftp.br.debian.org/debian/pool/main/libn/libntlm/libntlm0_1.2-1_mipsel.deb
[email protected]# dpkg -i libntlm0_1.2-1_mipsel.deb
[email protected]# dpkg -i libgsasl7_1.8.0-2_mipsel.deb
[email protected]# dpkg -i msmtp_1.4.28-1_mipsel.deb
[email protected]# curl -O http://ftp.br.debian.org/debian/pool/main/d/dialog/dialog_1.1-20120215-2_mipsel.deb
[email protected]# dpkg -i dialog_1.1-20120215-2_mipsel.deb
[email protected]# dpkg -i msmtp_1.4.28-1_mipsel.deb
[email protected]# curl -O http://ftp.br.debian.org/debian/pool/main/m/mutt/mutt_1.5.21-6.2+deb7u3_mipsel.deb
[email protected]# dpkg -i mutt_1.5.21-6.2+deb7u3_mipsel.deb
[email protected]# curl -O http://ftp.br.debian.org/debian/pool/main/g/gpgme1.0/libgpgme11_1.2.0-1.4+deb7u1_mipsel.deb
[email protected]# dpkg -i libgpgme11_1.2.0-1.4+deb7u1_mipsel.deb
[email protected]# curl -O http://ftp.br.debian.org/debian/pool/main/p/pth/libpth20_2.0.7-16_mipsel.deb
[email protected]# dpkg -i libpth20_2.0.7-16_mipsel.deb
[email protected]# dpkg -i libgpgme11_1.2.0-1.4+deb7u1_mipsel.deb
[email protected]# dpkg -i mutt_1.5.21-6.2+deb7u3_mipsel.deb
[email protected]# curl -O http://ftp.br.debian.org/debian/pool/main/t/tokyocabinet/libtokyocabinet9_1.4.47-2_mipsel.deb
[email protected]# dpkg -i libtokyocabinet9_1.4.47-2_mipsel.deb
[email protected]# dpkg -i mutt_1.5.21-6.2+deb7u3_mipsel.deb
[email protected]# dpkg -l | grep ca-certificates

OPCION 2

————

[email protected]# Curl -O my link s3 full
[email protected]# tar -xvf mylynks3.tar
[email protected]# dpkg a todos los archivos en mismo orden que la opciòn 1

INSTALADOS LOS 2 PAQUETES msmtp y mutt

[email protected]# vi /etc/msmtprc


#following accounts defaults
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
tls_starttls on
#logfile /var/log/msmtp/msmtp.log

# Default account
account gmail
host smtp.gmail.com
port 587
from [email protected]
user [email protected]
password PASSWORD_DE_LA_CUENTA

# Set a default account
account default : gmail

————

PROBAMOS ENVIAR UN CORREO SIMPLE


[email protected]# echo "He" | mutt -s "T" -c [email protected] [email protected]

————

COMPROBAMOS QUE EL CORREO NOS LLEGO BIEN Y AVANZAMOS AL SIGUIENTE PASO.

[email protected]# vi ~/.muttrc


set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="[email protected]"
set [email protected]
set envelope_from=yes

————

ENVIAMOS UN CORREO CON UN FILE ATTACHADO


echo "In the restore moment remember change the extension file 1tar to tar.gz" | mutt -s "AUTOBACKUP-EDGEMAX" -a /tmp/*.1tar.gz -c [email protected]

NOTA: Tenemos que probarlo con un archivo que tengamos generado / Sino tenemos archivo podemos avanzar a la ejecuciòn del script que nos genera el archivo y luego probarlo.


PROBAMOS EL SCRIPT DE ENVIO DE CONFIGURACION AUTOMATICA Y LIMPIEZA DEL ARCHIVO GENERADO

[email protected]# cd /config/user-data/

[email protected]# ./config-backup.sh

————

Si todo salio bien configuramos la tarea programada


[email protected]# set system task-scheduler task daily-backup executable path /config/user-data/config-backup.sh

[email protected]# set system task-scheduler task daily-backup interval 1d

[email protected]# show system task-scheduler task daily-backup

NOTA: SI QUIEREN PROBARLO PUEDEN CAMBIAR EL interval 1d por interval 1m (Esto nos enviara el backup cada 1 minuto si vemos que se envia bien lo volvemos a poner en el tiempo deseado).

————

Resultado Final!!!

Para finalizar ejecutamos

[email protected]# commit
[email protected]# save

————

Les deseo muy buenas noches y espero que les sirva.

Saludos,

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *