PHP skripta za sigurnosno kopiranje i vraćanje baze podataka: Kreiraj dump - uz obavijest e-poštom
Korak 1:
Molimo vas da obratite pažnju da se veće baze podataka u.U. više ne mogu sigurnosno kopirati preko skripte, jer skripta možda naiđe na ograničenja na serveru!
Potrebni su sljedeći koraci:
1. Napravite u FTP glavnom direktoriju vaše domene podmapu „backup”.
2. U toj mapi napravite PHP datoteku (db_backup.php) sa sljedećim sadržajem:
<?php
######## einstellungen #############################################
$db_name = "IhreDatenBank";
$db_passwd = "IhrDatenBankPasswort";
$downloadlink_erstellen = "ja";
$bestaetigungsmail_senden = "ja";
$bestaetigungsmail_adresse = "IhreMailAdresse";
$bestaetigungsmail_betreff = "[BACKUP] Ihr Backupscript";
$sql_file = "dump_" . $db_name . "_" . date('Ymd_Hi') . ".sql";
####################################################################
################## AB HIER BITTE NICHTS MEHR ÄNDERN!!! ################
### daten überprüfen
if ( $db_name == "IhreDatenBank" or $db_passwd == "IhrDatenBankPasswort" )
{
die("GREŠKA: Prvo morate unijeti podatke o bazi podataka u skriptu!");
}
if ( file_exists($sql_file) or file_exists($sql_file . ".gz") )
{
die("GREŠKA: Dump koji treba napraviti već postoji!");
}
## dump erstellen
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");
### größe ermitteln
$datei = $sql_file . ".gz";
$size = filesize($datei);
$i = 0;
while ( $size > 1024 )
{
$i++;
$size = $size / 1024;
}
$fileSizeNames = array(" Bytes", " KiloBytes", " MegaBytes", " GigaBytes", " TerraBytes");
$size = round($size,2);
$size = str_replace(".", ",", $size);
$groesse = "$size $fileSizeNames[$i]";
### nachricht erstellen
$message = "Vaša sigurnosna kopija baze podataka <b>" . $db_name . "</b> je napravljena.<br>";
$message .= "Veličina napravljenog dumpa iznosi <b>" . $groesse . "</b>.<br>";
if ($downloadlink_erstellen == "yes" or $downloadlink_erstellen == "ja" or $downloadlink_erstellen == "1")
{
$link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$link = str_replace(basename(__FILE__),$datei,$link);
$message .= "Downloadlink: <a href=" . $link . ">" . $datei . "</a>";
}
## nachricht ausgeben
echo $message;
### mail versenden
if ($bestaetigungsmail_senden == "yes" or $bestaetigungsmail_senden == "ja" 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>GREŠKA: Mail nije mogao biti poslan jer je adresa neispravna!";
}
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("GREŠKA: Mail se nije mogao poslati zbog nepoznate greške");
echo "<br>Potvrdni mail je uspješno poslan!";
}
}
?>
Molimo vas da u izvornom kodu promijenite sljedeće 3 linije:
$db_name = "IhreDatenBank";
$db_passwd = "IhrDatenBankPasswort";
$bestaetigungsmail_adresse = "IhreMailAdresse";
Naziv baze podataka i lozinku za bazu podataka preuzmite iz vašeg KAS (tehnička administracija) pod Baze podataka i unesite ih u odgovarajuća polja „IhreDatenBank” i „IhrDatenBankPasswort”. Za „IhreMailAdresse” unesite e-mail adresu na koju želite da vam se pošalje potvrdni mail.
Pozor: Molimo vas da u KAS (tehnička administracija)-u za direktorij za backup postavite zaštitu direktorija preko Alata -> Zaštita direktorija! Tako štitite sigurnosne kopije baze podataka od neovlaštenog pristupa.
4. Otvorite URL http://www.ihre-adresse-im-netz.de/backup/db_backup.php. Skripta za backup će se pokrenuti, napravit će sigurnosnu kopiju vaše baze podataka i kopirati je kao arhiviranu datoteku s npr. nazivom dumpDATUM.sql.gz u mapu „backup”.
Normalno je da je DB backup manji nego što vam veličina baze podataka prikazuje phpMyAdmin.Pretraga podrške i FAQ