PHP skripta za backup i povratak baze: Kreiraj dump - sa obaveštenjem e-poštom
Korak 1:
Imaj na umu da veće baze podataka možda neće moći da se sačuvaju putem skripte, jer skripta može naići na ograničenja servera!
Potrebni koraci su:
1. Kreiraj podfolder "backup" u glavnom FTP direktorijumu tvoje domene.
2. Napravi PHP fajl (db_backup.php) u tom folderu sa sledećim sadržajem:
<?php
######## postavke #############################################
$db_name = "TvojaBaza";
$db_passwd = "TvojaLozinka";
$downloadlink_erstellen = "da";
$bestaetigungsmail_senden = "da";
$bestaetigungsmail_adresse = "TvojEmail";
$bestaetigungsmail_betreff = "[BACKUP] Tvoja Backup Skripta";
$sql_file = "dump_" . $db_name . "_" . date('Ymd_Hi') . ".sql";
####################################################################
################## OD OVDE NIŠTA NE MENJAJ!!! ################
### provera podataka
if ( $db_name == "TvojaBaza" or $db_passwd == "TvojaLozinka" )
{
die("GREŠKA: Moraš prvo uneti podatke o bazi u skriptu!");
}
if ( file_exists($sql_file) or file_exists($sql_file . ".gz") )
{
die("GREŠKA: Dump koji treba da se napravi već postoji!");
}
## kreiranje dump-a
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");
### određivanje veličine
$datei = $sql_file . ".gz";
$size = filesize($datei);
$i = 0;
while ( $size > 1024 )
{
$i++;
$size = $size / 1024;
}
$fileSizeNames = array(" Bajtova", " KiloBajta", " MegaBajta", " GigaBajta", " TeraBajta");
$size = round($size,2);
$size = str_replace(".", ",", $size);
$groesse = "$size $fileSizeNames[$i]";
### kreiranje poruke
$message = "Tvoj backup baze podataka <b>" . $db_name . "</b> je izvršen.<br>";
$message .= "Veličina kreiranog dump-a je <b>" . $groesse . "</b>.<br>";
if ($downloadlink_erstellen == "yes" or $downloadlink_erstellen == "da" or $downloadlink_erstellen == "1")
{
$link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$link = str_replace(basename(__FILE__),$datei,$link);
$message .= "Download link: <a href=" . $link . ">" . $datei . "</a>";
}
## prikaz poruke
echo $message;
### slanje mail-a
if ($bestaetigungsmail_senden == "yes" or $bestaetigungsmail_senden == "da" 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 poslat jer je adresa nevažeća!";
}
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 nije mogao biti poslat zbog nepoznate greške");
echo "<br>Potvrda mail-a je uspešno poslata!";
}
}
?>
Molim te, promeni sledeće 3 linije u kodu:
$db_name = "TvojaBaza";
$db_passwd = "TvojaLozinka";
$bestaetigungsmail_adresse = "TvojEmail";
Ime baze podataka i lozinku preuzmi iz svog KAS (tehnička administracija) pod Baze podataka i postavi ih u odgovarajuća polja "TvojaBaza" i "TvojaLozinka". U "TvojEmail" postavi adresu e-pošte na koju želiš da dobiješ potvrdu mail-a.
Pažnja: Postavi zaštitu direktorijuma za backup folder u KAS (tehnička administracija) preko Alati -> Zaštita direktorijuma! Tako ćeš zaštititi svoje sigurnosne kopije baze od neovlašćenog pristupa.
4. Poseti URL http://www.tvoja-adresa-na-netu.de/backup/db_backup.php. Backup skripta će se pokrenuti, napraviti sigurnosnu kopiju tvoje baze podataka i kopirati je kao komprimovanu datoteku sa imenom npr. dumpDATUM.sql.gz u folder „backup“.
Normalno je da je DB-Backup manji nego što ti phpMyAdmin prikazuje veličinu baze podataka.Pretraga podrške i FAQ