Vultr propose une sauvegarde automatique en option pour tout VPS Performance Series. Cet article fournit, en plus de cette fonctionnalité, une option pour créer automatiquement des sauvegardes quotidiennes de base de données sur le serveur, et également les envoyer via FTP à votre serveur de sauvegarde ou même à des hôtes de fichiers.
Aperçu
- Les sauvegardes automatiques s'exécutent quotidiennement. L'heure à laquelle la sauvegarde se produit est configurable.
- De nombreux hôtes de fichiers proposent le transfert de fichiers via FTP, vous pouvez donc envoyer automatiquement votre base de données à votre compte personnel.
- Il envoie un e-mail une fois la sauvegarde terminée.
La description
Tout d'abord, créez et accédez au /backups
répertoire.
mkdir /backups
cd /backups
Ensuite, à l'aide de nano
ou de votre éditeur préféré, créez le fichier de script:
nano backupdb.sh
Maintenant, copiez et collez ce script et modifiez les variables en haut en fonction de vos paramètres:
#!/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
Après avoir terminé l'édition du script et enregistré le fichier, nous rendons le fichier exécutable en appliquant la commande suivante:
chmod +x backupdb.sh
Vous pouvez le tester maintenant en tapant dans le terminal.
/backups/backupdb.sh
... et une fois l'exécution terminée, tapez ls -a
pour voir si la base de données a été sauvegardée. Vérifiez également s'il a été envoyé à votre serveur FTP.
Si tout a bien fonctionné jusqu'à présent, nous pouvons le faire fonctionner quotidiennement en utilisant Crontab.
Sections Crontab
Vous pouvez modifier votre crontab avec la commande suivante:
crontab -e
Cela fera apparaître un éditeur de texte où vous pouvez saisir votre emploi du temps avec chaque travail sur une nouvelle ligne.
Chacune des sections est séparée par un espace, la dernière section contenant un ou plusieurs espaces. Voici comment se présente un travail cron:
minute (0-59), heure (0-23, 0 = minuit), jour (1-31), mois (1-12), jour de semaine (0-6, 0 = dimanche), commande
Donc, dans l'éditeur, tapez ou collez cette ligne:
30 02 * * * /backups/backupdb.sh
L'exemple ci-dessus s'exécutera /backups/backupdb.sh
à 02h30 tous les jours de chaque mois. Bien sûr, vous pouvez modifier l'heure à votre guise.
Maintenant, enregistrez et fermez le fichier. À l'heure prévue, la sauvegarde sera effectuée.