Vultr ofrece respaldo automático como una opción para cualquier VPS de la serie Performance. Este artículo proporciona, además de esta función, una opción para crear automáticamente copias de seguridad diarias de la base de datos en el servidor, y también enviarlas a través de FTP a su servidor de copia de seguridad o incluso a los hosts de archivos.
Visión general
- Las copias de seguridad automáticas se ejecutan diariamente. El momento en que ocurre la copia de seguridad es configurable.
- Muchos hosts de archivos ofrecen transferencia de archivos a través de FTP, por lo que puede enviar automáticamente su base de datos a su cuenta personal.
- Envía un correo electrónico una vez que finaliza la copia de seguridad.
Descripción
Primero, cree y cambie al /backups
directorio.
mkdir /backups
cd /backups
Luego, usando nano
o su editor favorito, cree el archivo de script:
nano backupdb.sh
Ahora, copie y pegue este script, y edite las variables en la parte superior de acuerdo con su configuración:
#!/bin/bash
############### Infos - Edit them accordingly ########################
DATE=`date +%Y-%m-%d_%H%M`
LOCAL_BACKUP_DIR="/backups"
DB_NAME="database_name"
DB_USER="root"
DB_PASSWORD="root_password"
FTP_SERVER="111.111.111.111"
FTP_USERNAME="ftp-user"
FTP_PASSWORD="ftp-pass"
FTP_UPLOAD_DIR="/upload"
LOG_FILE=/backups/backup-DATE.log
############### Local Backup ########################
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $LOCAL_BACKUP_DIR/$DATE-$DB_NAME.sql.gz
############### UPLOAD to FTP Server ################
ftp -nv $FTP_SERVER << EndFTP
user "$FTP_USERNAME" "$FTP_PASSWORD"
binary
cd $FTP_UPLOAD_DIR
lcd $LOCAL_BACKUP_DIR
put "$DATE-$DB_NAME.sql.gz"
bye
EndFTP
############### Check and save log, also send an email ################
if test $? = 0
then
echo "Database Successfully Uploaded to the Ftp Server!"
echo -e "Database Successfully created and uploaded to the FTP Server!" | mail -s "Backup from $DATE" [email protected]
else
echo "Error in database Upload to Ftp Server" > $LOG_FILE
fi
Una vez que haya terminado de editar el script y haya guardado el archivo, hacemos que el archivo sea ejecutable aplicando el siguiente comando:
chmod +x backupdb.sh
Puede probarlo ahora escribiendo en la terminal.
/backups/backupdb.sh
... y después de que finalice la ejecución, escriba ls -a
para ver si la base de datos ha sido respaldada. También confirme si fue enviado a su servidor FTP.
Si todo funcionó bien hasta ahora, podemos hacer que funcione diariamente usando Crontab.
Secciones Crontab
Puede editar su crontab con el siguiente comando:
crontab -e
Esto abrirá un editor de texto donde puede ingresar su horario con cada trabajo en una nueva línea.
Cada una de las secciones está separada por un espacio, y la sección final tiene uno o más espacios. Así es como se presenta un trabajo cron:
minuto (0-59), hora (0-23, 0 = medianoche), día (1-31), mes (1-12), día de la semana (0-6, 0 = domingo), comando
Entonces, en el editor, escriba o pegue esta línea:
30 02 * * * /backups/backupdb.sh
El ejemplo anterior se ejecutará /backups/backupdb.sh
a las 02:30 a.m. todos los días de cada mes. Por supuesto, puedes cambiar la hora como prefieras.
Ahora solo guarda y cierra el archivo. A la hora programada, se realizará la copia de seguridad.