You speak english?

Backup FTP et base de données via un script batch

 

Plateforme : Windows
Détails : Création d'un script permettant de faire des backups de site internet

 

Quel est l'objectif ?

Le but de ce petit script est de permettre la sauvegarde d'un site internet,
les fichiers et la base de données inclus.
Par la suite on pourra aussi automatiser la compression des fichiers puis
nommer le fichier avec une date.


Quel sont les outils nécessaires ?

Voici les programme que je vais utiliser pour faire fonctionner ce script :

- 7zip version console pour la compression des fichiers
- Mysqldump pour la sauvegarde de la base
- wget version windows pour la récupération des fichiers

Comment sauvegarder la base de données de mon site ?

Pour sauvegarder un base de données il faut utiliser mysqldump.
Voici comment l'utiliser :

mysqldump -h adresse_serveur -u utilisateur -pmotdepasse nom_base > fichier.sql
Remarque :
- Le mot de passe doit être coller au "-p" ainsi si mon mot de passe c'est toto il faudra noter -ptoto.
- Le serveur peut refuser la connexion à la base depuis l'extérieur pour des questions de sécurité, dans ce cas vous devez voir avec votre prestataire de services pour autoriser les connexions.
- Mysqldump permet de personnalisé le fichier sql généré, vous pouvez ajouter des paramètres tels que "--add-drop-table" pour ajouter des "DROP TABLE" avant la structure des tables. Vous pouvez aussi ne sélectionner que certaines tables à sauvegarder en les déclarant après le nom de la base.


Comment sauvegarder les fichiers de mon site ?

Avec wget vous pouvez récupérer vos fichier depuis votre FTP, contrairement à l'utilitaire
FTP natif de windows, wget permet de sauvegarder le contenu complet d'un répertoire, y compris
les sous-répertoires (-r permet de défini l'option récursif).
Voici la marche à suivre :

wget -r ftp://utilisateur:motdepasse@adresse_serveur/repertoire/*


Remarque :
N'oubliez pas la petite étoile qui permet de récupérer la totalité du contenu tu répertoire.

Comment compresser mes sauvegardes ?

Pour compresser vos fichiers que vous venez de récupérer depuis votre FTP, je vous conseille 7zip voici comment utiliser cette version console de 7zip :
7z a -tzip fichierdesortie.zip -r votrerepertoire\*.*
Le " -tzip " permet de définir le format de sortie, ici le format ZIP
Le  "-r " permet de compresser votre répertoire de manière récursive, 7zip compressera alors tout le contenu de votre répertoire en gardant l'arborescence.

Comment nommer mes sauvegardes avec une date ?

Avec un script bat vous pouvez récupérer la date et l'heure du système, très utile si vous voulez nommer la sauvegarde par la date et l'heure à laquelle celle-ci à été faite.


set Annee=%DATE:~6,4%
set Mois=%DATE:~3,2%
set Jour=%DATE:~0,2%
set Heure=%TIME:~0,2%
set Minutes=%TIME:~3,2%
set Secondes=%TIME:~6,2%

if %Heure% LSS 10 set Heure=0%TIME:~1,1%

set fichier_name=save%Annee%%Mois%%Jour%%Heure%%Minutes%%Secondes%


7z a -tzip %fichier_name%.zip -r votrerepertoire\*.*

L'instruction "set" permet de définir une variable, que vous pouvez par la suite afficher en la plaçant entre deux "%".
TIME et DATE permettent de récupérer l'heure et la date exactes du système.
La condition LSS 10 permet de rajouter un 0 à l'heure pour avoir par exemple 09 pour 9h
puis on compresse le répertoire avec comme nom de sortie pour le zip save20080814091015.zip
soit l'année, puis le mois, le jour, et l'heure complète.


Instructions pour le fichier joint

Vous pouvez télécharger l'exemple avec tous les programmes nécessaires déjà inclus.
Editer le fichier "backup.bat" et entrez vos paramètres FTP et Base de données.
puis lancer le script.

Télécharger les sources

 

- haut de page -



About

Créateur de solutions innovantes

Keep in touch

wakdev - PGP Public Keyjulien [arobase] wakdev.com

All rights reserved : wakdev
Tread softly because you tread on my internet...