Jump to content
Sign in to follow this  
zirone

Dump SQL automatique en PHP

Rate this topic

Recommended Posts

Bonsoir à tous,

Avant de tester ce code sur mon dédié, j'aimerais savoir plusieurs choses:

<?php

set_time_limit(90);

$host = "localhost";

$user = "****";

$password = "****";

$database = "****";

$date = date("d-m-Y");

$backup = $database . $date . '.sql.gz';

$command = 'cd /home/xxxxx/www/dump/';

$command .= 'mysqldump --default-character-set=latin1 --h$host --u$user --p$password $database | gzip> $backup';

system($command);

?>

Ce code marchera-t-il selon vous?

Le fichier sera-t-il enregistré comme convenu dans /home/xxxxx/www/dump/?

J'ai un doute sur la dernière question. Vaut-il mieux mettre le chemin avant ou après?

Merci beaucoup ;)

Share this post


Link to post
Share on other sites

Bonjour

Puisque tu as un dédié, pourquoi ne lances-tu pas diretement la commande mysqldump avec la crontab ? C'est plus simple que de passer par php.

Share this post


Link to post
Share on other sites

Et pourquoi pas :

$command = 'mysqldump --default-character-set=latin1 --h$host --u$user --p$password $database | gzip> /home/xxxxx/www/dump/$backup';

Ca me semble plus sûr si tu doutes du résultat. Après, faut voir si ta base de données n'est pas trop volumineuse, sinon, tu risques de dépasser la limite d'exécution du script PHP.

Share this post


Link to post
Share on other sites

Merci pour vos réponses ;)

Mon seul soucis est que j'y connais pas grand chose en dédié (disons les bases).

J'aimerais bien le faire par cron, mais je crois que je dois appeler un fichier interne au dédié non? En C ou quelque chose dans le genre? Un script shell? (j'y connais rien la dedans ^^).

Pour PHP, le problème ne vient pas vraiment de la base volumineuse (je fais ca a 3h du matin quand y'a pas un chat et j'ajoute set_time_limit(90); qui me donne 1min30 de plus pour l'exécution du script au cas où). Seulement, en ayant testé mon code, la sauvegarde en PHP ne marche pas...

Edited by zirone

Share this post


Link to post
Share on other sites

C'est plus simple que php, il suffit juste de lancer mysqldump avec les bons paramètres:

Tu édites ta crontab en faisant crontab -e (et la normalement tu te retrouve sous vi)

ensuite si tu veux par exemple lancer ton dump a 0h30 tous les jours, tu peux faire quelque chose comme cela :

30 0 * * * (. /etc/profile; mysqldump --default-character-set=latin1 --h<ton host> --u<ton user> --p<ton password> <ta base> | gzip > /<ton repertoire>/backup_$(date +%d-%m-%Y-%H-%M).sql )

Share this post


Link to post
Share on other sites

Tout à fait d'accord avec ReikiDojo...

L'utilisation de Php ne t'apporte rien dans ton exemple.

Pour le cron, il est très simple de le mettre en place soit par webmin, soit en lançant simplement un "crontab -e" en tant que root sous putty.

Mais attention dans ce dernier cas, tu vas lancer l'éditeur "vi" qu'il vaut mieux connaître avant.

Pour info, les commandes de bases de vi sont:

i pour passer en mode insertion

<esc> pour revenir au mode par défaut

<esc>:q! pour quitter sans sauver les modifs

<esc>:wq pour quitter en sauvant les modifs...

Et tu te déplaces avec les flèches du clavier. <esc> est la touche d'échappement en haut à gauche de ton clavier.

Une recommandation: évite d'utiliser le clavier numérique pour les chiffres :P

C'est très basique et ne représente que le minimum vital, mais cela devrait te permettre de t'en sortir sans trop de dégâts :P

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×
×
  • Create New...