Skrypt PHP do tworzenia kopii i przywracania bazy danych: Utwórz zrzut - z powiadomieniem e-mailowym

Krok 1:

Proszę pamiętać, że większe bazy danych mogą nie zostać zapisane przez skrypt, ponieważ skrypt może napotkać ograniczenia serwera!

 

Następujące kroki są konieczne:

1. Utwórz w głównym katalogu FTP swojej domeny podfolder "backup".

2. Utwórz w tym folderze plik PHP (db_backup.php) z następującą zawartością:

 

<?php
######## ustawienia #############################################
$db_name = "TwojaBazaDanych";
$db_passwd = "TwojeHasłoDoBazy";
$downloadlink_erstellen = "tak";

$bestaetigungsmail_senden = "tak";

$bestaetigungsmail_adresse = "TwójAdresEmail";
$bestaetigungsmail_betreff = "[BACKUP] Twój skrypt backupu";

$sql_file = "dump_" . $db_name . "_" . date('Ymd_Hi') . ".sql";

####################################################################
################## OD TEGO MIEJSCA NIC NIE ZMIENIAĆ!!! ################

### sprawdź dane
if ( $db_name == "TwojaBazaDanych" or $db_passwd == "TwojeHasłoDoBazy" )
{
die("BŁĄD: Musisz najpierw wprowadzić dane bazy w skrypcie!");
}
if ( file_exists($sql_file) or file_exists($sql_file . ".gz") )
{
die("BŁĄD: Tworzony zrzut już istnieje!");
}

## utwórz dump
exec("mariadb-dump -u $db_name -p'$db_passwd' --single-transaction --allow-keywords --complete-insert --insert-ignore --routines --events --force $db_name > $sql_file");
exec("gzip $sql_file");

### określ rozmiar
$datei = $sql_file . ".gz";
$size = filesize($datei);
$i = 0;
while ( $size > 1024 )
{
$i++;
$size = $size / 1024;
}
$fileSizeNames = array(" Bajty", " Kilobajty", " Megabajty", " Gigabajty", " Terabajty");
$size = round($size,2);
$size = str_replace(".", ",", $size);
$groesse = "$size $fileSizeNames[$i]";

### utwórz wiadomość
$message = "Twój backup bazy danych <b>" . $db_name . "</b> został wykonany.<br>";
$message .= "Rozmiar utworzonego zrzutu wynosi <b>" . $groesse . "</b>.<br>";

if ($downloadlink_erstellen == "yes" or $downloadlink_erstellen == "tak" or $downloadlink_erstellen == "1")
{
$link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$link = str_replace(basename(__FILE__),$datei,$link);
$message .= "Link do pobrania: <a href=" . $link . ">" . $datei . "</a>";
}

## wyświetl wiadomość
echo $message;

### wyślij maila
if ($bestaetigungsmail_senden == "yes" or $bestaetigungsmail_senden == "tak" or $bestaetigungsmail_senden == "1")
{
if(!preg_match( '/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/' , $bestaetigungsmail_adresse))
{
echo "<br>BŁĄD: Mail nie mógł zostać wysłany, ponieważ adres jest nieprawidłowy!";
}
else
{
mail($bestaetigungsmail_adresse, $bestaetigungsmail_betreff,
$message,"From: backupscript@{$_SERVER['SERVER_NAME']}\r\n" . "Reply-To: backupscript@{$_SERVER['SERVER_NAME']}\r\n" . "Content-Type: text/html\r\n")
or die("BŁĄD: Mail nie mógł zostać wysłany z powodu nieznanego błędu");
echo "<br>Mail potwierdzający został pomyślnie wysłany!";
}
}
?>

 

Proszę zmienić w kodzie źródłowym następujące 3 linie:

$db_name = "TwojaBazaDanych";
$db_passwd = "TwojeHasłoDoBazy";

$bestaetigungsmail_adresse = "TwójAdresEmail";

Nazwę bazy danych i hasło do niej znajdziesz w swoim KAS (zarządzanie techniczne) pod Bazy danych i wstaw je w odpowiednie pola "TwojaBazaDanych" i "TwojeHasłoDoBazy". W polu "TwójAdresEmail" wpisz adres e-mail, na który chcesz otrzymać potwierdzenie.

Uwaga: Proszę ustalić w KAS (zarządzanie techniczne) ochronę katalogu dla katalogu backup poprzez Tools -> Ochrona katalogu! Dzięki temu zabezpieczysz swoje kopie bazy danych przed nieautoryzowanym dostępem.

4. Otwórz URL http://www.twoja-adres-w-sieci.pl/backup/db_backup.php. Skrypt backupu zostanie uruchomiony, utworzy kopię zapasową bazy danych i skopiuje ją jako skompresowany plik o nazwie np. dumpDATUM.sql.gz do folderu „backup“.

Normalne jest, że kopia DB jest mniejsza niż rozmiar bazy danych wyświetlany w phpMyAdmin.
Jak pomocna była ta instrukcja?

Wsparcie i FAQ przeszukaj

Seitensuche