Sauvegardes automatiques vers un serveur FTP
Sauvegarder fichiers et bases de données vers un serveur FTP distant avec rotation automatique.
A quoi sert ce tutoriel
Le tutoriel "Sauvegardes automatiques vers un serveur FTP" vous aide a atteindre cet objectif:
Sauvegarder fichiers et bases de données vers un serveur FTP distant avec rotation automatique.
Debian / Ubuntu
-
Installer les outils nécessaires : apt install -y lftp mariadb-client - --- Créer le script /usr/local/bin/backup_ftp.sh ---
- #!/bin/bash
- DATE=$(date +%Y-%m-%d)
- BACKUP_DIR=/tmp/backups/$DATE
- FTP_HOST="ftp.exemple.com"
- FTP_USER="utilisateur_ftp"
- FTP_PASS="motdepasse_ftp"
- FTP_DIR="/backups/$(hostname)"
- mkdir -p $BACKUP_DIR
- --- Sauvegarde de toutes les bases de données ---
-
mysqldump -u root --all-databases | gzip > $BACKUP_DIR/db_$DATE.sql.gz - --- Sauvegarde des fichiers web ---
-
tar -czf $BACKUP_DIR/web_$DATE.tar.gz /var/www/html/ - --- Envoi vers le serveur FTP avec lftp ---
- lftp -u $FTP_USER,$FTP_PASS $FTP_HOST <<EOF
- mkdir -p $FTP_DIR
- put $BACKUP_DIR/db_$DATE.sql.gz -o $FTP_DIR/db_$DATE.sql.gz
-
put $BACKUP_DIR/web_$DATE.tar.gz -o $FTP_DIR/web_$DATE.tar.gz - bye
- EOF
- --- Nettoyage des fichiers temporaires locaux ---
- rm -rf $BACKUP_DIR
- --- Rendre le script exécutable ---
-
chmod +x /usr/local/bin/backup_ftp.sh - --- Planifier avec cron (tous les jours à 3h du matin) ---
-
crontab -e puis ajouter : - 0 3 * * * /usr/local/bin/backup_ftp.sh >> /var/log/backup_ftp.log 2>&1
- --- Tester manuellement ---
-
/usr/local/bin/backup_ftp.sh && echo "Sauvegarde OK" - --- Rotation : supprimer les sauvegardes FTP de plus de 30 jours ---
- Ajouter dans le script avant EOF :
- find $FTP_DIR -name "*.gz" -mtime +30 -delete