Skocz do zawartości

Cron jobs - kopia bd.


Ptaq

Rekomendowane odpowiedzi

Chciałem sie dowiedzieć jak zrobić by za pomocą tego narzedzia byla mi wysyłana kopia bazy danych na maila.

Troche informacji o tym pozbieralem ale nie potrafie ich do kupy zebrac by zadzialalo :P

wiem ze tu:

https://builder.com.com/5100-6372-5285858.html

cos jest o tym

i cos + -

mysqldump --user=USERS --host=localhost --password=HASŁO --all-databases --compress > baza_sql.sql && gzip -c baza_sql.sql > baza_sql.gz && mutt -x -s BlueMan.pl -a baza_sql.gz email@admin.pl

cos takiego trzeba wmątować ale dokladnie nie wiem gdzie i do pliku jakiegos ?

Jak by ktos mogl tak krok po kroku wytlumaczyc, albo najlepiej na gotowym przykladzie podac byl bym bardzo wdzieczny.

https://www.punktseo.pl/darmowe-bonusy/ << rozdaje: kody do katalogów firm, kody rabatowe, szablony ZennoPoster ! |---| Moje strony: https://www.s90.pl/pozycjonowanie/ | https://www.seo-stat.pl - zapraszam.                                                                                                                                                                                          

seo-stat-logo.png

 

Odnośnik do komentarza
Udostępnij na innych stronach

Proponuje zrobić to w dwóch etapach, choć może też być jednoetapowo.

"Pierwszy cron" uruchamia oprogramowanie php do zrobienia kopii bazy danych dzięki czemu na serwerze mamy plik kopii bazy danych. Najlepiej w formacie *.gz wtedy ma stosunkowo "mały rozmiar".

"Drugi cron" po jakimś czasie uruchamia plik php którego zadaniem jest wysłanie maila z dołączonym plikiem interesującej nas kopii bazy danych.

I to wszystko :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Mój stary kodzik tylko skoda felicja iż na mym svr mam wyłończny dostep do shella.

$dir = '/home/usr/_private/_db';	
$date = date("Y-m-d");
$name = 'backup[' . $date . '].sql.gzip';
$write  = "mysqldump  --user='$cfg[user]' --host=localhost --password='$cfg[passwd]' --all-databases --compress | gzip > $dir/$name";

exec($write);

sleep(10);

$boundary = '----==Multipart_Boundary_x' . md5( uniqid ( rand() ) ) . "x";

$message .= "--$boundary\n";
$message .= "Content-Type: application/octet-stream; name=\"$name\"\r\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-Disposition: attachment; filename=\"$name\"\r\n\n";

$path = "$dir/$name";
$fp = fopen($path, 'r');
do
{
	$data = fread($fp, 8192);
	if (strlen($data) == 0) break;
	$content .= $data;
} while (true);

$content_encode = chunk_split(base64_encode($content));
$message .= $content_encode . "\n";
$message .= $boundary . "--\n";

$headers  = "From: cron@domena.net\n" .
		 "MIME-Version: 1.0\r\n" .
		 "Content-Type: multipart/mixed;\r\n" .
		 " boundary=\"{$boundary}\"";
@mail('adres@email', "Backup: [$date]", $message, $headers);

sleep(10);

exec("rm $dir/$name");
}

Odnośnik do komentarza
Udostępnij na innych stronach

Fajnie tylko, że jaki "szanujący się serwer" ma włączoną funkcję exec(); ?

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Tutaj https://www.silisoftware.com/scripts/index.php?source=/backupDB/backupDB.phps jest ciekawe oprogramowanie php do tworzenia kopii bazy danych. Po małej modyfikacji powinno jak najbardziej się do tego nadawać :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Na swoje potrzeby mam coś takiego (plik phpowy):

<?

set_time_limit(0);

system("mysqldump --host=DOMENA -user=USER --password=PASS --complete-insert --all-databases | gzip > ../backups/$(date +%Y-%m-%d--%H-%M).sql.gz");

?>

Działa poprawnie - tworzy pliki nazywane np. 2005-12-20--10-10.sql.gz

Wysyłki mailem nie mam, bo akurat u mnie backup bazy ma ok. 20MB, ale u siebie mógłbyś np. dodać wysyłkę maila z załącznikiem korzystając z klasy htmlMimeMail (działa wyśmienicie). Z tego co pamiętam funkcja system() wstrzymuje działanie skryptu do momentu zakończenia jej wykonywania czyli bezpośrednio po niej możesz dać wysyłkę emaila bez martwienia się o to czy backup został wykonany.

Na codzień prowadzę sklep oferujący kosmetyki oraz kosmetyki naturalne

a zawodowo zajmuję się czymś takim jak tworzenie stron - Siedlce

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności