Sauvegarde FTP automatique de son site vers un NAS

Aujourd’hui, les sites CMS ont bien évolué : Joomla, WordPress… Il existe de nombreux systèmes de sauvegarde automatique comme BackWPup déjà présenté ici. Mais les CMS plus anciens, comme Nuked Klan par exemple, ne possèdent pas de systèmes de sauvegarde automatique. On fait la sauvegarde complète en FTP une fois par mois (quand on y pense). Suite à un hack sur l’un de mes sites, je me suis activé pour arriver à avoir une vraie sauvegarde complète FTP automatique hebdomadaire. Après des recherches j’ai fini par trouver une commande à exécuter.
Possédant un NAS Synology, et donc la possibilité de créer une tâche Cron il suffit d’une simple ligne pour faire une sauvegarde de votre FTP. Le premier téléchargement sera le plus long, car il va télécharger l’intégralité du site, mais lors des prochaines exécutions il téléchargera uniquement les nouveaux fichiers et les fichiers modifiés.

Sauvegarde FTP automatique

Bien sûr cela peut aussi fonctionner sur d’autres NAS ou même serveurs pouvant effectuer des tâches Cron. Sur un NAS Synology ouvrez le Panneau de configuration, et allez dans Planificateur de tâches (il faut être en mode avancé pour voir ce menu). Ensuite allez sur Créer puis Tâche planifiée et Script défini par l’utilisateur. Indiquez un nom à votre tâche et sélectionnez dans la liste un utilisateur.

On va ensuite sur le second onglet Programmer, choisissez ici le jour et l’heure à laquelle vous souhaitez que votre tâche s’exécute. Pour moi elle est programmée tous les dimanches à 4h du matin.

Aller maintenant sur l’onglet Paramètres de tâches, je vous conseille de cocher les 2 cases et d’y entrer votre email, en cas de problème vous recevrez un email d’alerte.

Nous allons maintenant entrer les commandes suivantes dans le champ Exécuter la commande. La première commande se charge de récupérer l’intégralité du site. La seconde compresse le contenu dans une archive tar.gz datée.

wget -m ftp://utilisateur:password@ftp.xxxx.fr/* -P /volume1/web/Sauvegardes/votre_site

tar -zcvf /volume1/web/Sauvegardes/votre_site/backup-$(date +%Y-%m-%d-%H-%M-%S).tar.gz /volume1/web/Sauvegardes/votre_site/ftp.xxxx.fr/

Il va falloir modifier la commande avec vos infos, voici la liste dans l’ordre de la commande.

  • Utilisateur: Indiquez le nom d’utilisateur de votre serveur FTP
  • Password: Le mot de passe de votre serveur FTP
  • ftp.xxxx.fr: Indiquez l’adresse ou l’IP de votre serveur FTP
  • /volume1/web … : C’est le chemin où vous voulez stocker votre site sur le NAS
  • 2ème chemin /volume1/web/…/backup : Ici on renseigne le chemin où sera stocké l’archive compressée et son nom.
  • 3ème chemin /volume1/web/…/ftp.xxxx.fr: C’est le chemin où seront stockés tous les fichiers de votre FTP mais non compressés, remplacez ftp.xxxx.fr par l’adresse ou l’IP de votre serveur FTP.

Vous pouvez personnaliser la date et l’heure indiquées dans le nom de votre backup, actuellement le nom vous indiquera la date JJ-MM-AAAA (jour, mois et année) et l’heure HH-MM. Si vous voulez changer cela, vous trouverez au lien suivant les différents formats.

Attention, si vous hébergez un site Web sur votre NAS ou si vous envisagez de le faire dans un futur proche : n’utilisez pas le chemin /volume1/web car Synology utilise ce dernier par défaut.

Une fois que vous avez tout saisi et indiqué vos informations, cliquez sur OK. Sélectionnez votre script et cliquez sur « Exécuter« . L’inconvénient c’est qu’il n’y a pas de suivi graphique, personnellement une fois le script exécuté je surveille le moniteur de ressource (Partie réseau) pour voir si le NAS télécharge les fichiers.

Une fois votre tâche terminée vous obtiendrez vos fichiers backup.

source