\n"; }; function backupmysql() { require ('../db.php'); /* nesse db.php ficam os dados $my_host = 'servidor-do-mysql'; $my_user = 'user-name'; $my_pass = 'senha'; $my_db = 'nome do banco de dados'; */ $file_time = time(); $file = "backup_" . $file_time . ".sql"; $back = fopen($file,"w"); $version = "1.0"; $link = mysql_connect($my_host,$my_user,$my_pass) or die("erro connectando: " . mysql_error()); mysql_select_db($my_db,$link) or die("erro selecionando: " . mysql_error()); $tables = mysql_list_tables($my_db) or die("erro no list_tables: " . mysql_error()); ######################## # CABECALHO DO ARQUIVO # ######################## $timebkp = date("d/m/Y, H:i:s",time()); $mysql_version = mysql_get_server_info(); $php_version = phpversion(); fwrite($back,"-- bacteria_(PHP/MySQL/Dump) -- version: $version -- -- Servidor: $my_host -- Horario de backup: $timebkp -- Versao do MySQL: $mysql_version -- Versao do PHP: $php_version -- -- Bando de dados: `$my_db` -- -- -------------------------------------------------------- "); while ($row = mysql_fetch_row($tables)) { $table = $row[0]; // cada uma das tabelas mysql_query("OPTIMIZE TABLE `boletos`;") or die("erro otimizando tabelas: " . mysql_error()); $res2 = mysql_query("SHOW CREATE TABLE $table"); while ($lin = mysql_fetch_row($res2)) { // para cada tabela fwrite($back,"--\n"); fwrite($back,"-- Estrutura da tabela `$table`\n"); fwrite($back,"--\n\n"); fwrite($back,"DROP TABLE IF EXISTS `$table`;\n"); $new_lin = str_replace("CREATE TABLE `","CREATE TABLE IF NOT EXISTS `",$lin[1]); fwrite($back,"$new_lin ;\n\n"); fwrite($back,"--\n"); fwrite($back,"-- Extraindo dados da tabela `$table`\n"); fwrite($back,"--\n\n"); $res3 = mysql_query("SELECT * FROM $table"); if (mysql_num_rows($res3) == 0) { break; }; $fields = mysql_list_fields($my_db,$table); $columns = mysql_num_fields($fields); $nc = $columns; $nc--; $fiel = NULL; fwrite($back,"INSERT DELAYED IGNORE INTO `$table` (`"); for ($i = 0; $i < $columns; $i++) { $fiel .= mysql_field_name($fields, $i); if ($i < $nc) { $fiel .= ";"; }; }; $newfiel = explode(";",$fiel); fwrite($back,implode("`, `",$newfiel)); fwrite($back,"`) VALUES "); $i=1; $rt = mysql_num_rows($res3); $ft = mysql_num_fields($res3); while ($r=mysql_fetch_row($res3)) { fwrite($back,"("); for ($x=0; $x < $ft; $x++) { if (mysql_field_type($res3,$x) == 'int' || mysql_field_type($res3,$x) == 'real') { fwrite($back,"$r[$x]"); } else { fwrite($back,"\"$r[$x]\""); }; $nft = $ft; $nft--; if ($x < $nft) { fwrite($back,", "); }; }; fwrite($back,")"); if ($i < $rt) { fwrite($back,",\n"); } else { fwrite($back,";\n"); }; $i++; }; fwrite($back,"\n-- --------------------------------------------------------\n\n"); }; }; fclose($back); if (gzip($file)) { print "$file_time
\n"; } else { die("erro na compactacao do arquivo!
\n"); }; }; function gzip($src, $level = 9, $dst = false){ if($dst == false){ $dst = $src.".gz"; }; $old_src = $src; if(file_exists($src)){ $filesize = filesize($src); $src_handle = fopen($src, "r"); if(!file_exists($dst)){ $dst_handle = gzopen($dst, "w$level"); while(!feof($src_handle)){ $chunk = fread($src_handle, 2048); gzwrite($dst_handle, $chunk); } fclose($src_handle); gzclose($dst_handle); unlink($old_src); return true; } else { error_log("$dst already exists"); } } else { error_log("$src doesn't exist"); } return false; } ?>