backup db con php

Ciao a tutti,

sono alle prese con un file in php che mi serve per fare il backup di un db mysql.

Il file funziona correttamente ma chiede sempre l'intervento dell'utente per "SALVARE" il file.

header('Content-Type: application/octetstream');

è la funzione che mostra la finestra e richiede di fare click sul pulsante salva.

Vorrei fare una modifica allo script in modo che quotidianamente il file di backup sia salvato in una determinata cartella del mio pc.

Com'è possibile fare una cosa di questo tipo?

grazie!!!

 :bye:

inviato 10 anni fa
stellina
X 0 X

devi affidarti ad un programma esterno in grado di richiamare lo script PHP negli istanti che desideri, autonomamente. Sui server linux questo compito è generalmente affidato a "cron", un demone che è possibile programmare in modo che esegua delle operazioni ad intervalli prestabiliti.

Sei su Windows o su Linux?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Sono su linuk con distribuzione debian

in verità il vecchio sistemista aveva fatto uno script che si arranangiava a fare il backup

tutto è andato bene ma negli ultimi gg lo script non va più e il sistemista se ne andato da un pò di tempo.

quindi a dire la verità non so che cosa poteri fare...

 :'(

risposto 10 anni fa
stellina
X 0 X

se sei su debian allora sicuramente avrai cron. Quindi quella è la strada migliore.

Con google troverai molte informazioni su come impostare un nuovo "task" in cron per lanciare periodicamente uno script PHP.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

il fatto è che io non so programmare in bash...

al momento vorrei creare una funzione in php che mi faccia il backup poi in qlc trovo il modo di lanciarla.

Ho provato a costruire questo script in php ma il file che viene salvato è pari a 0 kb:

  
$backupdir = 'pippo';


$backupFile = $db . "-" . date("dmY-His") . '.gz';

$command = "mysqldump --opt -h $host -u $user -p $pass $db | gzip > $backupdir/$backupFile";
system($command);

echo 'ok';

Cosa c'è che non va???

 :bye:

risposto 10 anni fa
stellina
X 0 X

prova con:

shell_exec("mysqldump --quick --single-transaction --user=$db_user --password=$db_pass $db_dbname  > $nome_file.sql");

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

GRIAZIE!!

funziona!

Il file che viene prodotto hai già avuto modo di testarlo facendo un restore??

 :bye:

risposto 10 anni fa
stellina
X 0 X

certo  O0

ci campo con quella riga  ;)

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

 ::)

per la copia da remoto in locale come va scritto il percorso della cartella in locale sui cui vuoi che sia salvato il file sql??

 :bye:

risposto 10 anni fa
stellina
X 0 X

domanda:

ma tu con quella riga di codice riesci a fare il backup di un db che grande poco più di un GB???

risposto 10 anni fa
stellina
X 0 X

non ho mai lavorato con DB molto grandi quindi non so dirti cosa succede... sicuramente funziona ma il tempo necessario potrebbe essere tantino. DIpende da molti fattori: la velocità della macchina, dei dischi, ecc.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda