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
root@EDGEMAX# sudo su
root@EDGEMAX# configure
root@EDGEMAX# cd /config/user-data/
root@EDGEMAX# 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.
root@EDGEMAX# 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
root@EDGEMAX# chmod +x /config/user-data/config-backup.sh
root@EDGEMAX# 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
————
root@EDGEMAX# curl -O http://ftp.br.debian.org/debian/pool/main/m/msmtp/msmtp_1.4.28-1_mipsel.deb
root@EDGEMAX# curl -O http://ftp.br.debian.org/debian/pool/main/g/gsasl/libgsasl7_1.8.0-2_mipsel.deb
root@EDGEMAX# dpkg -i libgsasl7_1.8.0-2_mipsel.deb
root@EDGEMAX# curl -O http://ftp.br.debian.org/debian/pool/main/libn/libntlm/libntlm0_1.2-1_mipsel.deb
root@EDGEMAX# dpkg -i libntlm0_1.2-1_mipsel.deb
root@EDGEMAX# dpkg -i libgsasl7_1.8.0-2_mipsel.deb
root@EDGEMAX# dpkg -i msmtp_1.4.28-1_mipsel.deb
root@EDGEMAX# curl -O http://ftp.br.debian.org/debian/pool/main/d/dialog/dialog_1.1-20120215-2_mipsel.deb
root@EDGEMAX# dpkg -i dialog_1.1-20120215-2_mipsel.deb
root@EDGEMAX# dpkg -i msmtp_1.4.28-1_mipsel.deb
root@EDGEMAX# curl -O http://ftp.br.debian.org/debian/pool/main/m/mutt/mutt_1.5.21-6.2+deb7u3_mipsel.deb
root@EDGEMAX# dpkg -i mutt_1.5.21-6.2+deb7u3_mipsel.deb
root@ED# curl -O http://ftp.br.debian.org/debian/pool/main/g/gpgme1.0/libgpgme11_1.2.0-1.4+deb7u1_mipsel.deb
root@EDGEMAX# dpkg -i libgpgme11_1.2.0-1.4+deb7u1_mipsel.deb
root@EDGEMAX# curl -O http://ftp.br.debian.org/debian/pool/main/p/pth/libpth20_2.0.7-16_mipsel.deb
root@EDGEMAX# dpkg -i libpth20_2.0.7-16_mipsel.deb
root@EDGEMAX# dpkg -i libgpgme11_1.2.0-1.4+deb7u1_mipsel.deb
root@EDGEMAX# dpkg -i mutt_1.5.21-6.2+deb7u3_mipsel.deb
root@EDGEMAX# curl -O http://ftp.br.debian.org/debian/pool/main/t/tokyocabinet/libtokyocabinet9_1.4.47-2_mipsel.deb
root@EDGEMAX# dpkg -i libtokyocabinet9_1.4.47-2_mipsel.deb
root@EDGEMAX# dpkg -i mutt_1.5.21-6.2+deb7u3_mipsel.deb
root@EDGEMAX# dpkg -l | grep ca-certificates
OPCION 2
————
root@EDGEMAX# Curl -O my link s3 full
root@EDGEMAX# tar -xvf mylynks3.tar
root@EDGEMAX# dpkg a todos los archivos en mismo orden que la opciòn 1
INSTALADOS LOS 2 PAQUETES msmtp y mutt
root@EDGEMAX# 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
root@EDGEMA# echo "He" | mutt -s "T" -c copy_[email protected] [email protected]
————
COMPROBAMOS QUE EL CORREO NOS LLEGO BIEN Y AVANZAMOS AL SIGUIENTE PASO.
root@EDGEMAX# 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
root@EDGEMAX# cd /config/user-data/
root@EDGEMAX# ./config-backup.sh
————
Si todo salio bien configuramos la tarea programada
root@EDGEMAX# set system task-scheduler task daily-backup executable path /config/user-data/config-backup.sh
root@EDGEMAX# set system task-scheduler task daily-backup interval 1d
root@EDGEMAX# 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
root@DM-RO-01# commit
root@DM-RO-01# save
Recent Comments