MySQL dump v PHP, který funguje

Vyřešeno2.32K zhlédnutíWebhosting
0

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.

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
RM130195 Vybral nejlepší odpověď 31. 8. 2020
0

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.

Role: Zákazník+ Web: https://www.techniciostrava.cz Vizitka: Jsi-li programátor, prohraješ s počítačem, výrobcem HW a uživatelem. Jsi-li tester, prohraješ se všemi.. Programováním i testováním se to snažím vyvrátit :-)
RM130195 Vybral nejlepší odpověď 31. 8. 2020
0

Zdravím,

pokud máte na mysli chybovou zprávu:

WARNING: SET_TIME_LIMIT() HAS BEEN DISABLED FOR SECURITY REASONS IN ...

kterou způsobuje vypnutí funkce set_time_limit(), tak tam je řešením tuto funkci ve skriptu zakomentovat.

//set_time_limit()

Případně se dají vypnout varování. Stačí dát někam na začátek:

error_reporting(0);

Tohle je však velice nebezpečné, protože varování jsou tu od toho, aby upozornili pokud je ve skriptu něco špatně.

Role: Zákazník+ Web: https://404m.com Vizitka: Neprogramuj dnes, co nemůžeš debugovat zítra.
IS97596 Odpověděl na otázku 13. 8. 2020
0

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.

Role: Zákazník
MV270050 Změnil status na publikováno 13. 8. 2020
0

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…

Role: Zákazník
MV270050 Změnil status na publikováno 13. 8. 2020
0

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.

Role: Zákazník+ Web: https://404m.com Vizitka: Neprogramuj dnes, co nemůžeš debugovat zítra.
IS97596 Odpověděl na otázku 13. 8. 2020
0

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í…

Role: Zákazník
MV270050 Změnil status na publikováno 13. 8. 2020
0

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..

Role: Zákazník
MV270050 Změnil status na publikováno 13. 8. 2020