Ciao a tutti.
Sono nuovo del forum.
Ho un problema con uno script php per il backup del database utilizzando mysqldump.
il codice è il seguente:
La cosa strana è che il comando mysqldump se eseguito da shell funziona perfettamente, su php no.codice:<?php include "connessione.php"; include "topmenu.php"; // Cartella del sito da backuppare $sito_dir = '/var/www/serenity/'; // Percorso completo dell'archivio compresso del sito $sito_filename = '/home/yaku/Dropbox/backup_database/backup_database.tar'; // Database $db_nome = 'serenity'; $db_user = 'root'; $db_pass = 'r00tmysql'; $db_host = 'localhost'; // Percorso completo del backup SQL $db_filename = '/var/www/serenity/backup_database.sql'; // comprimo i file del sito $copia_sito = shell_exec('sudo tar -cvf '.$sito_filename.' '.$sito_dir); // creo il backup del DB $command = "mysqldump --host=$db_host --user=$db_user --password=$db_pass $db_nome > $db_filename"; $command=escapeshellcmd($command); $copia_db = shell_exec($command); echo "<br>".$copia_db; // verifico che la creazione in locale dei backup abbia funzionato if ($copia_sito && $copia_db) { echo "Il backup è stato eseguito"; } else { echo "<br>Il backup non è stato eseguito"; } ?>
Inoltre il codice:
Funziona, mentre quello con mysqldump no!codice:$copia_sito = shell_exec('sudo tar -cvf '.$sito_filename.' '.$sito_dir);
l'output dello script è il seguente:
E sinceramente non ci capisco molto.codice:-- MySQL dump 10.13 Distrib 5.5.41, for debian-linux-gnu (x86_64) -- -- Host: localhost Database: serenity -- ------------------------------------------------------ -- Server version 5.5.41-0ubuntu0.14.04.1 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
Dove sbaglio?

Rispondi quotando
