Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zautomatyzowany zrzut bazy danych
Forum PHP.pl > Forum > PHP
wizard144
Witam, czy znacie może jakieś DZIAŁAJĄCE skrypty które automatycznie zrzucają bazę danych?

Pozdrawiam!
vokiel
Wrzucasz do crona:

  1. <?php
  2. system('mysqldump -h localhost -u user_name -phaslo nazwa_bazy | gzip > '.date("Y-m-d").'_nazwa_bazy.sql.gz');
  3. ?>

lysiu
Cytat(Fafu @ 23.09.2009, 09:05:50 ) *


a mi ten skrypt wyświetla tylko dwa pierwsze wpisy z każdej tabeli, czemu tak?

edit: nawet nie pierwsze, tylko jakieś losowo wybrane, akurat jest trzeci i ostatni
Fafu
w funkcji get_rows() chyba musisz tam w zapytaniu usunąć LIMIT 2
lysiu
a faktycznie, dzięki, mój błąd, że dokładnie nie przejrzałem tego co uruchamiam
wizard144
CO do metody vokiela, moze i dziala, ale nie wiem gdzie zapisuje zrzut bazy danych, jutro sprawdze skrypt od Fafu: )
vokiel
Cytat(wizard144 @ 23.09.2009, 22:07:05 ) *
CO do metody vokiela, moze i dziala, ale nie wiem gdzie zapisuje zrzut bazy danych, jutro sprawdze skrypt od Fafu: )
Zrzut bazy zapisuje w lokalizacji z której uruchomiony jest plik, możesz ustawić swoją

  1. <?php
  2. system('mysqldump -h localhost -u user_name -phaslo nazwa_bazy | gzip > ../public_html/dumps/jeszcze/glebiej/ukryty/2009/09'.date("Y-m-d").'_nazwa_bazy.sql.gz');
  3. ?>
marcio
  1.  
  2. function create_backup_file($file_name_backup, $drop = false) {
  3.  
  4. $file = fopen($file_name_backup, 'w+');
  5.  
  6. $output = "# Czas wygenerowania: ".date('d-m-Y G:i')."\r\n";
  7. $output .= "# Wersja serwera: ".mysql_get_server_info()."\r\n";
  8. $output .= "# Wersja php: ".phpversion()."\r\n\r\n";
  9. fwrite($file, $output);
  10.  
  11. $query = 'SHOW TABLES';
  12. $result = mysql_query($query);
  13. while ($row = mysql_fetch_assoc($result)) foreach ($row as $table) {
  14.  
  15. $struct_table[$table] = '';
  16. $struct_table[$table] .= "\r\n\r\n# Struktura tabeli: ".$table."\r\n\r\n\r\n";
  17.  
  18. $query_struct_table = mysql_query("SHOW CREATE TABLE `$table`");
  19. while($struct = mysql_fetch_row($query_struct_table)) {
  20.  
  21. foreach($struct as $tbl)
  22.  
  23. if($drop) {
  24.  
  25. $struct_table[$table] .= 'DROP TABLE IF EXISTS `'.$table."`;\r\n";
  26. $struct_table[$table] .= $tbl. ";\r\n\r\n";
  27. }
  28. else $struct_table[$table] .= $tbl. ";\r\n\r\n";
  29. }
  30.  
  31. fwrite($file, $struct_table[$table]);
  32.  
  33. $table_zaw = "-------------------------------\r\n";
  34. $table_zaw .= '-- Zawartosc tabeli: '.$table."\r\n";
  35. $table_zaw .= "-------------------------------\r\n\r\n\r\n";
  36.  
  37. fwrite($file, $table_zaw);
  38. $result2 = mysql_query('SHOW COLUMNS FROM '.$table);
  39. $col_names= '';
  40.  
  41. while($row = mysql_fetch_array($result2)) $col_names .= "`$row[0]`".', ';
  42.  
  43. $col_names = substr($col_names, 0, -2);
  44. $result2 = mysql_query('SELECT * FROM '.$table);
  45. $num = mysql_num_fields($result2);
  46.  
  47. while($row2 = mysql_fetch_row($result2)) {
  48.  
  49. $values = '';
  50. for($i = 0; $i < $num; $i++) {
  51.  
  52. $type = mysql_field_type($result2, $i);
  53. if($type == "tinyint" || $type == "smallint" || $type == "mediumint" || $type == "int" || $type == "bigint" || $type == "timestamp") $values.= $row2[$i].', '; else $values .= "'$row2[$i]'".', ';
  54. }
  55. $values = substr($values, 0, -2);
  56. $insert = "INSERT INTO ".$table."(".$col_names.") VALUES(".$values.");\r\n";
  57. fwrite($file, trim($insert, "\n"));
  58. }
  59. }
  60. fclose($file);
  61. }
  62.  
  63.  
  64. function download_file($file_backup) {
  65.  
  66. header('Content-type: application/x-unknown');
  67. header('Content-Disposition: attachment; filename='.$file_backup);
  68. header('Connection: close');
  69. header('Expires: 0');
  70. readfile($file_backup);
  71. }
  72.  
  73.  


Moja funkcja jak wywolac chyba kazdy wie.







To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.