Salve a tutti,
come faccio in altervista, a creare una copia delle mie cartelle del sito ed una copia del db sql con il php ?
Grazie
Salve a tutti,
come faccio in altervista, a creare una copia delle mie cartelle del sito ed una copia del db sql con il php ?
Grazie
I files li copi tramite FTP, il dump del DB lo puoi fare tramite phpMyAdmin (esporta)
Si lo so.
A me interessava fare un qualcosa di ricorsivo ed automatico senza stare io a preoccuparmi di ricordare ogni volta il backup.
Anche perchè sono più siti
Ti crei uno script in PHP che ti impacchetta DUMP del DB e files e li invia ad una casella email, oppure fa l'upload su un altro servizio web.
Attivi un cronjob che lancia lo script.
Occhio al timeout degli scritp. Su AV è di 30 secondi e non può essere portato a più di 60.
Se il backup è grosso non vedo alternativa al farlo a manina.
Non c è uno script preconfezionato per il server di aletrvista?
Potete postarlo .
Grazie
Non sono strane le mie risposte, ma le tue domande.
Non c'è cosa più odiosa di qualcuno che vuole la pappa pronta.
Anche se ci fosse, dubito che chi ci ha sbattuto la testa e perso tempo ed energie, sia disposto a darlo a te che neanche vuoi pensare a fare qualcosa a manina.
Ti ripeto, se vuoi la pappa pronta, usa il backup messo a disposizione da AV. Cosa ha che non va?
Ultima modifica di vplaza : 31-05-2016 alle ore 20.16.23
Ti ringrazio per i suggerimenti.
Non mi dire niente.... se però cortesemente puoi evitare successivi interventi per questo post.
perchè ogni volta perdo un sacco di tempo a leggere risposte che poi non mi sono utili
Ovviamente potrai sempre interventire nei miei prossimi post senza problemi
Ti ringrazio per la collaborazione
Ciao
vplaza: ti prego di perdonarmi, ma non sarebbe la prima volta che qualcuno chiede e/o riceve "pappa pronta" e quindi non è un problema, e non serve criticare (io stesso, qualche volta, pubblico script "pappa pronta" sul mio sito, così come milioni di persone su github e tanti altri siti). che poi: chiedere è lecito, rispondere è cortesia. se non ti piace quanto chiede puoi benissimo ignorare - così si evita il flame.
-
bonusscuola1: non mi sembra di aver mai visto script in php per il backup qui su AV. ma sul web ce ne sono, e se vanno altrove non dovrebbero esserci grossi problemi a farli andare anche qui. se non hai una fretta assoluta mi riprometto di creare qualcosa a giorni (ma in questo istante ho due pc in assistenza, e non scrivo niente sul sito da giorni - quindi non ho proprio tempo).
Ho provato ad utilizzare gli script che utilizzano exec - però mi sembra che av non abiliti il login ftp via php.
e' così o mi sbaglio ?
lascia stare exec (quando c'è è meglio disabilitarlo - bene che qui non ci sia) :P
questo per il database!
se lo metti in una sottodirectory e lo richiami con cron, avrai i tuoi backup ogni tot ore.Codice PHP:
<?php
$host = "localhost";
$username = "bonusscuola1";
$password = "";
$db_nameblog = "my_bonusscuola1";
backup_tables($host, $username, $password, $db_nameblog);
/* backup the db OR just a table */
function backup_tables($host,$user,$pass,$name,$tables = '*')
{
$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);
//get all of the tables
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}
//cycle through
foreach($tables as $table)
{
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);
$return.= 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";
for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j < $num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace("\n","\\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j < ($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}
//save file
$handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
fwrite($handle,$return);
fclose($handle);
}
Ultima modifica di darkwolf : 31-05-2016 alle ore 21.37.57
questo per i file:
potrebbe andare in timeout dato che:Codice PHP:
<?php
/*
* PHP: Recursively Backup Files & Folders to ZIP-File
* (c) 2012-2014: Marvin Menzerath - http://menzerath.eu
*/
// Make sure the script can handle large folders/files
// ini_set('max_execution_time', 600);
// ini_set('memory_limit','1024M');
// Start the backup!
zipData('/membri/bonusscuola1', '/membri/bonusscuola1/backup/backup'.time().'.zip');
echo 'Finished.';
// Here the magic happens :)
function zipData($source, $destination) {
if (extension_loaded('zip')) {
if (file_exists($source)) {
$zip = new ZipArchive();
if ($zip->open($destination, ZIPARCHIVE::CREATE)) {
$source = realpath($source);
if (is_dir($source)) {
$iterator = new RecursiveDirectoryIterator($source);
// skip dot files while iterating
$iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
foreach ($files as $file) {
$file = realpath($file);
if (is_dir($file)) {
$zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
} else if (is_file($file)) {
$zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
}
}
} else if (is_file($source)) {
$zip->addFromString(basename($source), file_get_contents($source));
}
}
return $zip->close();
}
}
return false;
}
?>
li ho commentati (qui sarebbero serviti a poco).// ini_set('max_execution_time', 600);
// ini_set('memory_limit','1024M');
non sono farina del mio sacco... li ho cercati, testati, e corretti dove potuto.
Grande DarkWolf