MySQL dump v PHP, který funguje
Dobrý den, existuje nějaká možnost jak udělat v php mysqldump, aniž by neobsahoval zakázané funkce PHP z bezpečnostních důvodů? Jde mi hlavně o každodenní zálohy přes Terminál a stažení k sobě na server.
Díky moc za info.
8 Answers
Dobrý den,
mám vlastní PHP řešení, které provádí zálohu databáze do zipu a následný upload na FTP server (např. Wedos disk apod).
Skript se jednoduše spouští ručně nebo cronem.
Součástí skriptu je samozřejmě možnost nastavit si počet dnů, po který se mají zálohy uchovávat, pokud tedy máte např. nastaveno 14 dnů, starší zálohy se automaticky odmazávají.
Skript samozřejmě vytváří i log, ve kterém se dokážete dopátrat případných chyb nebo si kontrolovat, že zálohy proběhly korektně.
V logu je i název databáze, informace o tom, které tabulky se zálohovaly, kolik je v nich řádků, info o tom, že byla záloha úspěšně provedena, byla smazaná stará záloha atd..
Aktuálně jej používám pro zálohu 16 databází postupně po sobě jedním spriptem a nikdy nenastal problém.
V případě zájmu mě kontaktujte – kontakt je na webu viz podpis.
Riešilo sa to tu: https://help.wedos.cz/otazka/mysql-dump/22975/answer/23017/
Moja ponuka stále platí 🙂
Přece není v dnešní době třeba uživatele nutit zálohovat databázi každý den ručně preš phpAdmin… Měl jsem vás za dobrý webhosting..
Je jich hodně, ale ani jeden příkaz k provedení dumpu nepovolujete, počínaje exec(), system(); passthru(); shell_exec();. Všechno máte zakázané, v podstatě nedáváte alternativu k vlastnímu zálohování a Vaše záloha je zpoplatněna 500 Kč…
To je celkem diskriminující…
exec() se na běžném sdíleném webhostingu nepovoluje nikde. Jedině přejít na VPS a tam už je na vás jak si to nastavíte a co povolíte.
Případně si napsat PHP skript, který pojede na hostingu a vygeneruje mysqldump v textové formě a pak si to stáhnete přes HTTP(S). Věřím že na internetu už budou hotové skripty.
za normálních okolností ten script rovnou vyhodí sql soubor, ale díky zákazu exec(); a dalších mi to bohužel neumožní. Nefunguje ani přímý mysqldump z terminálu, odepřený přístup…
Ne ne, snažím se pustit script mysqildump příkazem exec($command);, který mi databázi vypíše a já ji přes wget stáhnu.