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:
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 &egrave stato eseguito";
    
  }
  else {
    echo "<br>Il backup non &egrave stato eseguito";  
  }
?>
La cosa strana è che il comando mysqldump se eseguito da shell funziona perfettamente, su php no.
Inoltre il codice:
codice:
$copia_sito = shell_exec('sudo tar -cvf '.$sito_filename.' '.$sito_dir);
Funziona, mentre quello con mysqldump no!

l'output dello script è il seguente:
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 */;
E sinceramente non ci capisco molto.
Dove sbaglio?