Jump to content

Un script linux pour sauvegarder le répertoire et la base de données mysql ?


whitespirit

Recommended Posts

Bonjour,

Je préfère poser cette question sur le forum car je n'ai pas réussi à trouver un script simple pour sauvegarder mon répertoire prestashop et la base de données mysq et envoyer tout ça via ftp.

Du coup, est-ce que quelqu'un ayant un script testé et qui fonctionne peut me le poster svp ?

Dans l'attente d'un généreux scriptman, bonne soirée à tout le monde...

PS: merci de ne pas m'envoyer vers un site contenant un script complexe à mettre en oeuvre ou qui n'a pas été testé

Link to comment
Share on other sites

Bonjour
Je ne sais pas si ça va d'aider beaucoup mais je dirai qu'il te faut simplement :

- utiliser mysqldump ( voir man mysqldump) pour mettre ta base dans un fichier que tu peux compresser .
- compresser ton répertoire prestashop , il y'a plusieurs outils lunix pour ça et le resultat à envoyer dans un fichier
- lancer ftp pour envoyer ces deux fichiers

Tu peux mettre ces commandes dans un fichier .sh et lancer ce .sh
Le lancement de ftp dans le fichier .sh peut se faire de la manière suivante :

ftp host <<

{ commande ftp pour se positionner sur les bons répertoires locaux et distants : cd et lcd }
put des fichiers
exit
<<

Il vaut mieux tester uniterement chaque comande avant de les mettre tous dans un même fichier .sh

Link to comment
Share on other sites

En fait je n'ai pas envie de ré-inventer la roue et de plus je ne maitrise pas des masses les scripts. J'ai trouvé des scripts de ce type mais ils soit trop complexes, soit je n'ai pas réussi à les utiliser. Voilà pourquoi je souhaiterai savoir si l'un d'entre vous utilise déjà ce genre de script pour un répertoire Prestashop, une base de données et un FTP.

Link to comment
Share on other sites

Bonjour
Je ne sais exactement ton besoin mais j'imagine que tu veux faire une sauvegarde régulière de ton site .
Je te propose la solution suivante :

- création d'un répertoire "Sauvegarde" avec deux sous répertoires "Base" et "Site"
- tu crées le script suivant "save.sh" dans ce fichier tu mets ( à l'aide de vi ou ton éditeur préféré ):

DATEJ=`date +%Y-%m-%d:%H:%M`
mysqldump -u{user} -p{mot de passe} {nom de la base} > Sauvegarde/Base/{nom de la base}
tar czf Sauvegarde/Base/{nom de la base}.$DATEJ.tar.gz Sauvegarde/Base/{nom de la base}
tar czf Sauvegarde/Site/{nom du site}.$DATEJ.tar.gz {repertoire de ton site}

Explication du script :

Ligne 1 : récupération de la date du jour dans un variable
ligne 2 : dumping de la base ( shema + données ) dans un fichier
ligne 3 : compressage de ce fichier et aec datage
ligne 4 : compressage du répertoire du site et sa sauvegarde dans un fichier daté .

Il faut après rendre executable ton script :
chmod +x save.sh

et tu lances ton script.

Maintenant et je comprend tu souhaiterait que ça se fasse automatiquement , dans ce cas je propose d'utiliser
le crontab d'unix . c'est le système de plannification de lancement de script sous unix :

- tu tapes la commande : crontab -e

- le systéme va t'afficher sous vi un fichier à modifier et tu rajoutes une ligne pour lancer ton script .
dans ce fichier chaque ligne correspond à une tache à lancer et c'est de la forme :

mm hh jj MM JJJ script_à_lancer

mm : minutes
hh : heure
jj : jour dumois
MM : le mois
JJJ : jour de la semaine

Si on veut lancer le script le 31/12 à 23H 30 on met

30 23 31 12 * le_script

si on veut lancer le script tous les jous à 22h :

00 22 * * * le_script

le * veut dire toutes les valeurs de ce champ .

Une fois que tu as mis ta ligne dans ce fichier tu le sauvegardes .

Avec ça tu dispose d'une sauvegarde régulière de ton site et après si tu as besoin de récupérer une sauvegarde sur ton pc , tu utilises ton logiciel ftp préféré et tu copies la sauvegarde que tu veux et à la date que tu veux . tu décompresses les deux fichiers et voila .

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...