J'ai préparé une méthode plus détaillée que j'utilise :
Récupérer le client
ncftp sur cette page :
http://www.ncftp.com/download/Et plus précisément le client pour windows (NcFTP Client 3.2.1 for Microsoft Windows au moment où j'écris).
L'installation par défaut de ce programme placera quelques fichiers ici : C:\Program Files\NcFTP
Nous allons uniquement utiliser le programme nommé : ncftpget.exe
Il permet de se connecter en ligne de commande, à un serveur ftp, et de récupérer des fichiers et/ou des dossiers complets.
Il faut aussi récupérer le programme forfiles.exe (de Microsoft), nous verrons plus tard pourquoi.
http://www.codeplex.com/SharedCache/P ... oad.aspx?DownloadId=19171A présent, nous allons créer sur notre disque dur, un dossier qui sera dédié à la gestion des sauvegardes de notre site.
Admettons que j'ai une partition F: disponible.
Je créé : F:\sites\monsite
Dans ce dossier, je copie les fichiers forfiles.exe et ncftpget.exe.
Je créé également 2 dossiers : backup_fichiers et backup_sql
Ce qui me donne normalement : F:\sites\monsite\backup_fichiers et F:\sites\monsite\backup_sql
Je créé dans F:\sites\monsite\, un fichier que j'appelle backup.bat
Ainsi qu'un fichier nommé : login.cfg
Ce qui doit nous donner une structure comme celle-ci :
Le fichier login.cfg contiendra les paramètres d'identification au serveur ftp.
Et sera très simplement structuré ainsi :
host
ftp.monsite.comuser user_login
pass user_password
1 ligne pour indiquer l'adresse du serveur ftp de votre site, une autre pour indiquer votre login et une dernière pour le mot de passe.
Voyons à présent, le contenu du fichier backup.bat
rem je me place dans mon dossier de sauvegarde
f:
cd
cd F:sitesmonsite
rem récupération du dossier "uploads" complet et du dossier "albums" dans le module xcgal
ncftpget -f login.cfg -A -R F:sitesmonsitebackup_fichiers /web/uploads/ /web/modules/xcgal/albums/
rem sauvegarde du site complet si nécessaire
rem ncftpget -f login.cfg -A -R F:sitesmonsitebackup_fichiers /web/
rem récupération de l'année, du mois et du jour en cours
set year=%DATE:~6,4%
set month=%DATE:~3,2%
set day=%DATE:~0,2%
rem récupère par ftp la sauvegarde de la nuit seulement - en utilisant les variables précédentes
ncftpget -f login.cfg -A -z -r 3 F:sitesmonsitebackup_sql /backups_mysql/backup_%year%%month%%day%.gz
rem supprime les fichiers .gz ayant plus de 5 jours
FORFILES /P "F:sitesmonsitebackup_sql" /M *.gz /D -5 /C "cmd /c if @isdir==FALSE del @file"
Le fichier forfiles.exe sert en fait à déterminer quels fichiers ont une ancienneté > 5 jours, et me permet donc de les supprimer, et de ne pas surcharger inutilement mon disque avec des sauvegardes obsolètes.
Concernant le serveur ftp, j'ai 2 dossiers visibles lorsque je me connecte :
- un dossier 'web', qui contient les fichiers accessibles par les internautes (mon site).
et au même niveau que le dossier web, un dossier 'backup_mysql', qui est seulement accessible par ftp, et qui contient les sauvegardes réalisées par mon hébergeur toutes les nuits à 3h.
Le fichier de sauvegarde sql est nommé automatiquement par l'hébergeur, sous cette forme : /backups_mysql/backup_20080328.gz
Il faut donc adapter le fichier backup.bat pour que les chemins correspondent à la structure de votre serveur.
Dans ce cas de figure, je sauvegarde uniquement le contenu du dossier 'uploads' complet et du dossier /modules/xcgal/albums/ qui changent régulièrement de contenu.
Pas la peine pour moi de faire le reste du site, il ne change pas tout seul, j'ai déjà une copie complète, et lorsque je fais des mises à jour, je garde une copie des fichiers modifiés.
Et je récupère la sauvegarde de la base de données effectuée à 3h par l'hébergeur (mon backup.bat est lancé à 4h tous les matins).
Je conserve sur mon disque les 5 derniers jours de sauvegarde de la base de données.
Je pourrai en conserver plus ou moins en paramétrant le fichier backup.bat
Pour sauvegarder 320mo actuellement (fichiers + sauvegarde de la base), la sauvegarde dure environ 10 minutes.
Penser à tester régulièrement une restauration de cette base (en local sur votre pc ou sur un site de test), pour s'assurer qu'elle est parfaitement exploitable.
Il suffit donc à présent, de lancer au moment voulu (à la main quand vous le souhaitez ou dans le planificateur des tâches pour une sauvegarde de nuit par exemple), le fichier backup.bat pour réaliser vos sauvegardes.
Ce mode opératoire indique une façon parmi d'autres de sauvegarder nos données.
Par exemple, certains hébergeurs ne proposent pas de sauvegardes sql (ou non récupérables par ftp), il faudra donc vous orienter votre d'autres méthodes de sauvegarde de bases de données.
Avec du php ou autre langage, on pourrait imaginer envoyer directement les données de votre serveur vers un autre serveur distant, cela vous évite de télécharger ça sur votre propre pc par exemple (même si personnellement, j'aime bien avoir des données sous la main).
C'est une de mes méthodes de sauvegarde, j'en ai d'autres, selon les sites, et le côté critique des données.
N'hésitez à multiplier les backups (l'espace disque n'est plus vraiment un problème de nos jours) vers plusieurs sources distinctes (en cas de crash de votre disque dur par exemple).