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)
Pourtant les lignes de commande seules s’exécutent parfaitement !
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); ?>
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
Partager