ugrás a tartalomhoz

backup cron-hoz

carstepD · 2007. Aug. 9. (Cs), 13.59
Üdv Mindenkinek,

olyan feladatom lenne: stream segítségével kellene mysql backupot csinálni?

Külső szolgáltatónál van a rendszer, de mi szeretnél saját backupot csinálni.
A scriptet később cronnal hívják meg a saját szerverünkről, amit lementünk.

A biztonsági kérdést azt meg tudjuk oldani, nem probléma.

Nekiálltam egy kis kutatkodásnak a neten és a weblaboron, el is jutottam egy ideig, de még nem volt lehetőségem letesztelni éles környezetben.

Mivel nem értek a cron scriptekhez és képességeihez, kérdéses, hogy a következő header beállítások használatával a cron script képes lesz e letölteni a fájlt:
[php]
header('Content-Type: text/x-sql');
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: attachment; filename="backup.sql"');
header('Pragma: no-cache');

//import dump class, and executing dump script
[/php]

A cron scriptet a kollégám fogja megcsinálni, de ő még szabadságon van. Biztosan van itt valakinek hasonló tapasztala.

Tehát a lehetőségeket kutatom és ehhez kérem segítségeteket, tanácsotokat?!

Üdv
Sanyi
 
1

cron

zila · 2007. Aug. 9. (Cs), 14.30
Nincs olyan, hogy cron script. A cron egy ütemező, ami megadott időpontokban végre tud hajtani parancsokat. Ez lehet akár egy bináris, shell script, parancssori php, vagy akár egy weben elérhető php script is (links vagy lynx segítségével tudja ezeket meghívni). Ebből fakadóan a lehetőségeid virtuálisan végtelenek :)

Namámost a cron a szerveren fut, ott készíti el a file-t, letölteni egy kliens tud. Olyat is lehet csinálni, hogy amikor lefutott a backup a serveren, a script végén ftp-vel, scp-vel, rsync-cel a backupot áttolja a ti szerveretekre, vagy a te saját gépeden szintén cronból egy másik script mondjuk egy óra eltérésssel leszedi a backup-ot a szerverreől. Ez utóbbi esetben valahová filerendszerbe leteszed a backupot, írsz egy kis php scriptet ami a fenti headerrel adja ki a filet. Nekem az előbbi szimpatikusabb, főleg rsync-cel, mert az csak a különbségeket viszi át a hálózaton...
2

értem

carstepD · 2007. Aug. 9. (Cs), 14.48
Szia zila,

igen a cron mint ütemező nekem is világos, bocs ha rosszul fogalmaztam vagy keveretem vmit. Csak a probléma az, hogy nem akarom fájlként a szerveren tárolni az adatot, hanem streamként letölteni és a saját gépen elmenteni. És ehhez a streamet szolgáló php script készítéséhez lenne segítségre szükségem.

Üdv
Sanyi
3

mysqldump megy?

Heilig Szabolcs · 2007. Aug. 9. (Cs), 17.36
Amúgy a mysqldump a szerveren elérhető és futásképes?
4

Bocs,

Heilig Szabolcs · 2007. Aug. 9. (Cs), 17.38
most látom, dump class-od van, ezek szerint azzal lesz megoldva a dump. Ez már létezik, és lefut?
5

Dump

carstepD · 2007. Aug. 9. (Cs), 21.33
Szia Szabolcs,

igen már megvan, bár egy kicsit át kell írnom, mert nagyszámú sorral rendelkező táblák esetén még bejön a php excution time hiba. Ide kell belenyúlni meg a visszaping eseményt kellett beleprogramozni korábban.

Üdv
Sanyi
6

Szerintem

Heilig Szabolcs · 2007. Aug. 9. (Cs), 23.34
Mivel a cronból futtatott script fogja letölteni a mentést, neked pont csak annyi dolgod van, hogy a scripted text/plain formában kiadja magából a dumpot. Ez most is megvan. Ha egy böngészőt szeretnél arra "kényszeríteni", hogy letöltse a kapott anyagot ahelyett, hogy megjelenítse, akkor kellenek a fenti http fejlécek. De a Te esetedben, amikor a kliens oldalon egy cronból futtatott script olvassa a kimeneted, akkor teljesen mindegy. Az nem ettől fogja tudni lementeni, vagy sem. Ha nem böngésző van a túloldalon, teljesen felesleges ezekkel a fejlécekkel kombinálni bérmit is. A túloldali script majd beolvassa a streamet és ha kedve tartja tetszőleges nevű fájlba írja, vagy épp egyből betolja egy helyi mysql-be, vagy kinyomtatja (a tuti), stb...