[cron sous Red-hat] un Backup bdd planifier
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:
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