Script per backup DB MySQL automatizzato che non va.

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

girovagando per la rete ho trovato un interessante script per il backup di DB Mysql. Dopo averlo correttamente configurato e lanciato in locale per vedere come funzionava, mi sono accorto che mi restituisce solamente la struttura del DB, e non il dump dei dati.

Questo è lo script:

PHP:
<?php
$email = "mail dove ricevere il report";
$host="Host dove c'è il DB"; 
$user="Nome Utente"; 
$password="Password";
$database="Nome del DB";
 
$bk = "./backup/" . date("d.m.Y") . ".sql";

if ( file_exists($bk) ) unlink($bk);
system(
"mysqldump --user=$user --password=$password --host=$host $database > $bk",$res
);
$dimensione = filesize($bk);
switch ($dimensione) {
case ($dimensione>=1048576): 
$dimensione = round($dimensione/1048576) . " MB"; break;
case ($dimensione>=1024): 
$dimensione = round($dimensione/1024) . " KB"; 
break;
default: $dimensione = $dimensione . " bytes"; break;
}

$testo = "Backup per il database " . $database . " eseguito.\n\n";
$testo .= "Sql: " . $res . "\n\n";
$testo .= "Percorso: " . $bk . "\n\n";
$testo .= "Dimensione: " . $dimensione . "\n\n";
$testo .= "Tempo di esecuzione: " . date(" F d h:ia") . "\n\n";
mail($email, "Database Backup" , $testo, "From: Website <>"); 
?>

Come faccio a fare inserire anche i dati contenuti nelle varie tabelle?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
sei sicuro che il tuo server supporti l'esecuzione di istruzioni da riga di comando da codice PHP?
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
credo di si, perchè con lo script attuale riesco ad estrarre la struttura delle tabelle ma non i dati in esse contenute
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ho apportato una piccola modifica. Ho aggiunto anche l'ora al nome del file

PHP:
<?php

$bk = "./backup/" . date("d.m.Y-G:i:s") . ".sql.txt";
if ( file_exists($bk) ) unlink($bk);
system(
"mysqldump --user=$user --password=$password --host=$host $database > $bk",$res
);
$dimensione = filesize($bk);
switch ($dimensione) {
case ($dimensione>=1048576): 
$dimensione = round($dimensione/1048576) . " MB"; break;
case ($dimensione>=1024): 
$dimensione = round($dimensione/1024) . " KB"; 
break;
default: $dimensione = $dimensione . " bytes"; break;
}

$testo = "Backup per il database " . $database . " eseguito.\n\n";
$testo .= "Sql: " . $res . "\n\n";
$testo .= "Percorso: " . $bk . "\n\n";
$testo .= "Dimensione: " . $dimensione . "\n\n";
$testo .= "Tempo di esecuzione: " . date(" F d h:ia") . "\n\n";
mail($email, "Database Backup" , $testo, "From: Website <>"); 
print("<a href='".$bk."'>SCARICA IL BACKUP DAL SERVER</a>");
?>

ed ho anche inserito una tabellina in cui mi genera un elenco dei file di backup:

PHP:
<?php

$cartella = opendir('./backup/');
print("<table class='tabella'>");
print("<thead><tr><th class='cella_intestazione'>File</th><th class='cella_intestazione'>Scarica</th></tr></thead>");
while ($file = readdir($cartella)) {
$file_array[] = $file;
}

foreach ($file_array as $file) {
# se il file inizia con .. lo tralascio
if ( $file == ".." || $file == ".") {
continue;
}
#trovo i file e creo il link
print("<tr>");
$e=substr(strrchr($file, "."), 0); // azzero l'estensione
$a=""; //sostituisco lo spazio vuoto con il relativo codice html
$b=" ";
$nome1=ereg_replace($e, $a, $file); // sostituisco codice 1
$nome=ereg_replace("_", "$b", $nome1); //sostituisco  codice 2. Sta parte qui l'ho fatta un pò male.... dovresti rivederla e farla meglio, ho fatto un paio di passaggi per niente....
print("<td class='cella_corpo'>Backup".$nome."</td>");
print("<td class='cella_corpo_2'><a href='$file' title='$nome'><img src='./img/pulsanti/pdf.png' alt='scarica' title='scarica' /></a></td>"); //questo crea il link
print("</tr>");
}
print("</table>");
?>

e qua non so come ordinare in base alla cella del nome del file.
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
oook, questo sono riuscito a risolverlo piuttosto comodamente. Ora mi rimane solamente l'altro problema: inserire anche il dump delle tabelle nel mio file di backup del DB. Questo è il file modificato con la creazione del file .ZIP e la cancellazione del file di origine:

PHP:
<?php

 
$bk = "./backup/Data".date("d.m.Y")."Ora".date("G.i").".sql";

if ( file_exists($bk) ) unlink($bk);
system("mysqldump --user=$user --password=$password --host=$host $database > $bk",$res);
$dimensione = filesize($bk);
switch ($dimensione) {
case ($dimensione>=1048576): 
$dimensione = round($dimensione/1048576) . " MB"; break;
case ($dimensione>=1024): 
$dimensione = round($dimensione/1024) . " KB"; 
break;
default: $dimensione = $dimensione . " bytes"; break;
}
$backupFile="./backup/Data".date("d.m.Y")."Ora".date("G.i").".zip";

//Se esiste già, lo cancello
if (file_exists($backupFile)) @unlink($backupFile);
//Includo la libreria e genero l'oggetto zip
require_once('./script/pclzip.lib.php');
$archive = new PclZip($backupFile);
//Una lista di nomi di files da comprimere
$listOfFilesToCompress=$bk;
//Aggiungo i files all'archivio
$v_list = $archive->add($listOfFilesToCompress);
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}
$testo = "Backup per il database " . $database . " eseguito.\n\n";
$testo .= "Sql: " . $res . "\n\n";
$testo .= "Percorso: " . $bk . "\n\n";
$testo .= "Dimensione: " . $dimensione . "\n\n";
$testo .= "Tempo di esecuzione: " . date(" F d h:ia") . "\n\n";
mail($email, "Database Backup" , $testo, "From: Website <>"); 
unlink("./backup/Data".date("d.m.Y")."Ora".date("G.i").".sql");
?>

Qualcuno mi sa dare una mano?
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
L'SQL generato dal comando che esegui ricrea sia le tabelle che i dati che le popolano.
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Riprendo questa discussione poiché riguarda il mio problema. Ho utilizzato lo stesso script per crearmi un backup del mio database ma io ottengo un file vuoto anziché il file con il dump del mio database, c'è qualcuno che sa spiegarmi il perché?
 
Discussioni simili
Autore Titolo Forum Risposte Data
G script per fare un backup da server a server PHP 2
L Script per convertire numeri in parole Javascript 2
P Passare solo alcuni parametri a script per CSV PHP 0
felino Script PHP per leggere un file JSON. autenticazione? PHP 4
romeocharly [PHP] Script per rinominare in automatico le immagini inviate da ftp PHP 0
A [PHP] Script con array con numeri che iniziano per 00 PHP 2
TpD [PHP] Script per organizzazione presenza eventi PHP 3
webmachine [PHP] Script per censurare parole PHP 4
otto9due GDPR 25 Maggio - script per attivare analytics, facebook ecc.. dopo il consenso. jQuery 14
M [PHP] Script per controllo disponibilitá negozio in citta PHP 4
G Inserzione script nella pagina html per jquery jQuery 8
K Script PHP per leggere array.txt Presentati al Forum 3
N [Javascript] script demo preloader per video Javascript 0
Mauro Guardiani [PHP] script per caricamento video PHP 0
P [Javascript] Aiuto per recupero variabili da script Javascript 10
D script per far funzionare l'animazione Javascript 4
D script per far funzionare l'animazione Presentati al Forum 1
romeocharly Creare un script/codice in php per collegare un id mysql con un file PHP 0
xone [Vendo] Script php+mysql autocostruito per gestione giacenze magazzino Offerte e Richieste di Lavoro e/o Collaborazione 0
F Script php per IP camera PHP 12
M Script per convertire video youtube in mp3 PHP 1
M Comportamento strano di questo script per caricamento file sql in database PHP 7
D Creare script per calcolo ore PHP 11
L Script per aggiornare pagina html Javascript 2
Y script per upload file PHP 9
G Script per sincronizzare EBay PHP 0
Tommi Script per menù Javascript 16
G Cerco script per importare file .xml e .csv. Lavoro retribuito Offerte e Richieste di Lavoro e/o Collaborazione 2
F Spiegazione script java per randomizzare Javascript 0
IImanuII Licenza per script in PHP PHP 2
S Consigli per script javascript per creare videogiochi Javascript 2
G Script per chat sito adulti PHP 1
S aiuto per script PHP/OOP PHP 2
A Script per download non legge stensione file PHP 1
Z Script per aprire video youtube sia apre a schermo intero e poi ridimensionare in automatico Javascript 1
P Supporto per creare uno script "Add Cart" Offerte e Richieste di Lavoro e/o Collaborazione 7
D Script per email pubblicitarie PHP 2
filippino Script PHP per estrarre dati estrazioni da sito "10 e lotto" PHP 0
M Script Google Maps per ricavare coordinate di un indirizzo PHP 0
andry79fi PLUGIN (o script) per Pagina Facebook con INTERVENTI degli utenti WordPress 0
M Dove sbaglio con questo script per inserimento record? PHP 1
M [risolto] Script ajax per form e mappe Ajax 6
A Sito per presentazione di plugin e script Presenta il tuo Sito 0
P Script per far scomparire l'input dopo aver premuto invio? Javascript 8
H Script per visualizzare ip mi dà errori! PHP 0
A [RISOLTO] Script per il login PHP 8
P script per avviare webcam Javascript 0
C VENDO-SCRIPT ADDMEFAST per incremento FANS su FACEBOOK Annunci servizi di Social Media Marketing 0
D script per querystring Javascript 2
C VENDO SCRIPT per aumentare fan su pagine facebook Annunci servizi di Social Media Marketing 0

Discussioni simili