Hola!
Tan sólo quería compartir que he desarrollado un pequeño script para que me mande un correo diario con los últimas copias de seguridad realizadas. De esta forma espero que sea sencillo darse cuenta si alguno no funciona bien.
Un saludo!
Hola!
Tan sólo quería compartir que he desarrollado un pequeño script para que me mande un correo diario con los últimas copias de seguridad realizadas. De esta forma espero que sea sencillo darse cuenta si alguno no funciona bien.
Un saludo!
Hola,
Para dejarlo documentado, os paso el código (sin la información sensible). Este script lo tengo en un servidor mío (ya que centraliza varios proyectos), aunque se podría implementar des de cualquier otro, incluso una RPi.
Primero, copio mi llave pública en el servidor dónde se hacen las copias:
ssh-copy-id anartist@XX.XXX.XXX.XX
Y creo una carpeta dónde montar las copias de seguridad e instalo dependencias:
mkdir borgbackup
apt install sshfs borgbackup
Este es el cógido del script:
#!/bin/bash
cd /root
echo "BACKUP REPORT" > report.txt
echo "" >> report.txt
date >> report.txt
echo "" >> report.txt
## Anartist
sshfs anartist@XX.XXX.XXX.XX:/home/anartist/borgbackup borgbackup/
echo "" >> report.txt
echo "ANARTIST" >> report.txt
### Audio
echo "Audio" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/audio | tail -1 >> report.txt
### Blog
echo "Blog" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/blog | tail -1 >> report.txt
### Cloud
echo "Cloud" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/cloud | tail -1 >> report.txt
### Forum
echo "Forum" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/forum | tail -1 >> report.txt
### Mail
echo "Mail" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/mail | tail -1 >> report.txt
### Picto
echo "Picto" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/picto | tail -1 >> report.txt
### Site
echo "Site" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/site | tail -1 >> report.txt
### Social
echo "Social" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/social | tail -1 >> report.txt
### Video
echo "Video" >> report.txt
export BORG_PASSPHRASE='XXXXXXX'
borg list borgbackup/video | tail -1 >> report.txt
fusermount -u borgbackup/
echo "Report finalizado!" >> report.txt
python mail.py "$(cat report.txt)"
Y el script “mail.py”:
import smtplib, ssl, sys
port = 587 # For SSL
smtp_server = "mail.anartist.org"
password = "XXXXXXXXX"
sender_email = "XXX@anartist.org"
receiver_email = "XXX@XXX.XXX"
subject = "Backup report"
message = """From: %s\nTo: %s\nSubject: %s\n\n%s""" % (sender_email, receiver_email, subject, sys.argv[1])
# Create a secure SSL context
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.starttls(context=context)
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
Y finalimente, configuro el cron:
0 6 * * * bash /root/report.sh