Page 1 sur 1
Sauvegarde planifiée de site Prestashop chez OVH
Posté : 21 juin 2016, 15:50
par favancini
Bonjour,
J'ai un site e-commerce basé sur Prestahshop chez OVH.
Je voudrais planifier des sauvegardes de mon site.
Je sais que je peux créer une tâche CRON (via l'espace client OVH) qui éxécutera un script PHP se trouvant sur mon serveur.
Mais je ne sais pas quel script je dois écrire pour faire une sauvegarde de mon site (base de données + fichiers).
D'avance merci pour votre aide.
Re: Sauvegarde planifiée de site Prestashop chez OVH
Posté : 21 juin 2016, 17:36
par favancini
Ovh m'a redirigé vers un guide pour faire les sauvegardes de la base de données
Voilà leur script:
system("mysqldump --host=adresse --user=mon_user --password=mon_mot_de_passe nom_de_la_base > nom_de_la_base.sql");
Est-il possible de modifier ce script de façon à ce que la base soit sauvegardée dans un dossier avec la date de la sauvegarde?
Merci
Re: Sauvegarde planifiée de site Prestashop chez OVH
Posté : 21 juin 2016, 20:02
par Sékiltoyai
Voilà leur script:
system("mysqldump --host=adresse --user=mon_user --password=mon_mot_de_passe nom_de_la_base > nom_de_la_base.sql");
Est-il possible de modifier ce script de façon à ce que la base soit sauvegardée dans un dossier avec la date de la sauvegarde?
A priori vous pouvez utiliser plusieurs commandes sur le même appel à system() en séparant par ";".
Pour créer un dossier, c'est la commande mkdir().
Cela donnerait donc quelquechose comme cela :
Code : Tout sélectionner
system("mkdir nom_du_dossier; mysql_dump ... >nom_du_dossier/nom_de_la_base.sql");
Re: Sauvegarde planifiée de site Prestashop chez OVH
Posté : 22 juin 2016, 15:12
par favancini
Cela fonctionne comme suit :
Code : Tout sélectionner
<?
// SAUVEGARDE DE LA BASE DE DONNEES AVEC AJOUT DE LA DATE ET DE L'HEURE AU NOM DU FICHIER .SQL
// On va chercher la date
$date = date('d-m-y-h');
// On crée un nom de fichier pour la base de données
$filename="ovh_prestashop-" . $date;
// La commande
system ("mysqldump --host=ip_du_site --user=nom-user --password=mot-de-passe nom_de_la_base > $filename.sql");
echo "C'est fini. La base est disponible par FTP";
?>
Re: Sauvegarde planifiée de site Prestashop chez OVH
Posté : 22 juin 2016, 15:29
par favancini
Ce que je voudrais faire maintenant, c'est copier le fichier SQL, dont la fin du nom change puisque c'est une date, vers un serveur FTP automatiquement.
J'arrive à copier un fichier qui a un nom fixe (fichier.sql) mais pas un fichier qui à un nom qui change (fichier-date.sql).
Quelle doit être la syntaxe du nom du fichier dans le script suivant?
Code : Tout sélectionner
<?php
$ftp_host = 'ip_du_ftp';
$ftp_user = 'user_du_ftp';
$ftp_pass = 'mot-de-passe';
$local_file = "fichier-date.sql";
$distant_file = "./chemin_sur_le_serveur_ftp/fichier-date.sql";
// on établit la connexion au serveur
$conn_id = ftp_connect($ftp_host);
// on se connecte en tant qu'utilisateur
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
// on active le mode passif
ftp_pasv($conn_id, true);
// si on est connecté avec succès, on transfère le fichier
if($login_result && ftp_put($conn_id, $distant_file, $local_file, FTP_ASCII)){
// si le transfert a fonctionné, on supprime le fichier local
// unlink($local_file);
}
// on clos la connexion
ftp_close($conn_id);
echo "C'est fini. La base est maintenant sur le serveur FTP.";
?>
Re: Sauvegarde planifiée de site Prestashop chez OVH
Posté : 22 juin 2016, 19:00
par @rthur
Bonjour,
Tu peux utiliser glob() pour faire une recherche sur les fichiers *.sql dans un répertoire précis :
http://fr.php.net/glob