Version complète: sur le forum Webmaster Hub : Dump SQL automatique en PHP
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
zirone
Bonsoir à tous,

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

CITATION
<?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 wink.gif
ReikiDojo
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.
maximettb
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.
zirone
Merci pour vos réponses wink.gif
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 happy.gif).

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...
ReikiDojo
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 :

CODE
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 )
Dan
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 tongue.gif

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 tongue.gif
zirone
Merci smile.gif
C'est fait wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.