Bonjour,

je voudrais faire un script PHP qui sera exécuté via un cron (tous les jours à 00:00 par exemple).

Voilà le script qui devait être exécuté, mais qui ne marche pas (je n'ai pas compris pour quoi) ? J'ai des warnings qui m'indiquent que la fonction "system()" ne s'est pas bien exécutée (jen'ai pas plus de détails)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$host = "localhost"; 
$user = "root";
$pass = "******"; // On définit les infos de la base de données
$db = "reporting-rh";
$date = date("d_m_Y"); // On définit le variable $date (ici, son format)
 
$backup = $db."bdd-backup_".$date.".sql.gz";
// Utilise les fonctions système : MySQLdump & GZIP pour générer un backup gzipé
$command = "mysqldump -h $host -u $user -p $pass $db | gzip> $backup";
system($command);
// Démarre la procédure de téléchargement
$taille = filesize($backup);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/gzip");
header("Content-Disposition: attachment; filename=$backup;");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$taille);
@readfile($backup);
// Supprime le fichier temporaire du serveur
unlink($backup);
?>
Pourtant les lignes de commande seules s’exécutent parfaitement !


Sinon, ça m'arrangerait de faire un script shell (un batch), mais je ne sais pas comment le faire. Est-il possible de m'aider un peu ? (C'est peut-être plus simple que le script PHP et plus stable).

Merci d’avance pour votre aide