DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Web aplikacije, web servisi i software (http://www.devprotalk.com/forumdisplay.php?f=30)
-   -   Database backup tool (http://www.devprotalk.com/showthread.php?t=7183)

bluesman 24. 02. 2009. 00:27

Database backup tool
 
Još onomad kada sam imao problem sa serverom i backup-ima, rekoh sebi da ću napraviti nešto što će mi omogućiti da lakše spavam noću.

Znači tool koji će da pravi dump baze, kompresuje ga, iskopira na neki FTP ili pošalje na mail. Naravno, to sve treba da može da radi preko cron-a, potpuno automatski. Upravo to sam i napravio, malo sam testirao i za sada radi ok, shvatio sam da je moguće da mnogima treba ista stvar pa rekoh da proverim da li ima interesovanja za tako nešto, pada spakujem u neki zip i dam na download.

Demo se nalazi ovde a postoji i mali help čisto da se vidi kako funkcioniše, šta može, šta ne može i kako se podešava. Pravi script radi recimo preko config fajlova, a ovaj demo je čisto da može da se unese šta god je potrebno pa da stiže na vaš mail/ftp a ne na moj. Naravno postoji i autorun script koji je pravljen baš za cron.

Podržani su chunk-ovi ali samo u RAR opciji kako bi moglo da se šalje na gmail u veličinama koje gmail prihvata (koliko je meni poznato to je 15MB po attachmentu, ali možda i grešim).

Generalno najbolja varijanta je da se koristi gzip + ftp upload, a mislim da nije loše čak i da se koristi gmail kao neki storage, čak se namesti i filter da ga odmah trpa u arhivu (da ne puno inbox, naročito ako ima više baza)

Postoje još neke ideje, recimo da se šalje izveštaj na mail (možda čak i na sms) po završenom backup-u, čisto da se zna da li je uspešno ili ne. Zatim, pričali smo o nekom bulk-backupu, gde se umesto jedne baze izabere nekolio baza i on radi 1 po 1, iako je to moguće i sada samo da se podesi poseban cron za svaku bazu.

Eto, ako ima neko još neku ideju kako bi ovo moglo još da se proširi, neka javi pa da vidimo šta ćemo.

Off Topic: Ne obraćajte pažnju na mešanje engleskog i srpskog ili evenutalne slovne greške, to je trenutno najmanje bitno

Mr.Paja 24. 02. 2009. 07:04

a di je download link ? :seljak:

chux 24. 02. 2009. 08:11

Ja u poslednje vreme koristim ovo: http://www.backup2mail.com/

pcigre 24. 02. 2009. 10:00

Možda je već bilo...

Evo skriptice koju je Peca napisao, ja malo modifikovao:

Kôd:

#!/bin/bash
mv /putanja/configuration.php /putanja/configuration.php.pomeren
cp /putanja/backup.php /putanja/configuration.php
mysqldump -h localhost -u db --password=pass pcigre_mambo1 |gzip > /putanja/db_`date +"%Y-%m-%d-%H"`.sql.gz
rm -f /putanja/configuration.php
mv /putanja/configuration.php.pomeren /putanja/configuration.php
ncftpput -u folder -p lozinka -m -R 1.1.1.1 / /putanja/db_`date +"%Y-%m-%d-%H"`.sql.gz
echo "Dnevni backup baza sajta xxx.com" | mail -s "Dnevni backup baza sajta xxx.com" info@xxx.com

^ radi pomeranje config fajla i stavlja fajl koji svima vraća 503 uz ljubaznu SE i user friendly poruku, backupuje bazu, vraća config, uploaduje na ftp i šalje mail da je završio.

Može neko da pomogne da ga modifikujemo da deli na fajlove i šalje na mail?

nn.nn 24. 02. 2009. 12:51

Npr:
Kôd:

#!/bin/bash
cp /putanja/configuration.php /putanja/configuration.php.pomeren && cp /putanja/backup.php /putanja/configuration.php
mysqldump -h localhost -u db --password=pass pcigre_mambo1 | gzip > /putanja/db_backup.sql.gz | split -b 10M - split_
for i in `ls split_*`; do uuencode $i $i > poruka_${i}; done
for i in `ls poruka_*`; do mail -s "backup `date +'%Y-%m-%d-%H'`" email@example.com < $i; done;
mv /putanja/configuration.php.pomeren /putanja/configuration.php
rm -f split_* poruka_*


nixa 24. 02. 2009. 14:34

A sto je bluesman ne stavis na code.gooogle.com ?

nn.nn 24. 02. 2009. 15:49

Citat:

Originalno napisao nixa (Napišite 66696)
A sto je bluesman ne stavis na code.gooogle.com ?

Nije loš izbor ni github.com. Em što je to zgodna prilika da se proba Git, em što je Git(hub) jako dobar, a i besplatan je za open source projekte. Da sad ne prepričavam, od mene tople preporuke, a sve je na samo par klikova od vas. :)

bluesman 24. 02. 2009. 16:55

Ok, ljudi, ali to sto vi stavljate je shell script, ovde je reč o običnom php scriptu (klasi) koji radi backup, kompresuje i deli u chunks (po želji) i šalje na FTP (ili email) (ili oba).

@nixa: ma otkud znam... ne znam da li je ovo uopšte za google code... evo sad sam stavio download opciju, pa ako neko želi neka skine kod sebe i proba.

Dakle, malo sam sredio da možete da se snađete: http://www.goranpilipovic.com/db-backup/

nixa 24. 02. 2009. 17:17

pa vrlo prosto, ako neko nesto menja a hoce da vrati u source nije lose koristiti svn , pa makar i git hub ...

Ja sam se vec navikao da iz shell-a vucem pre iz svn-a nego da skidam,pa otpakujem.

degojs 24. 02. 2009. 19:39

Citat:

And tou can setup cron to do it automatically
Mala greška..

bluesman 24. 02. 2009. 20:11

Da, tnx, ima sigurno tih greskica jer nisam ni proveravao sta pisem, sad sam provalio jos par NOTICE, pa cu i to da sredim. Zato i jeste v0.1 :)

Gargoyle 24. 02. 2009. 20:12

Iz manuala
Citat:

Za sada se zna da postoji problem kada se koristi zip opcija sa ogromnim fajlovima (preko 30MB) na nekim sistemima pojavljuje se greška memory exhausted iako je podešena dovoljna veličina memorije raspoloživa scriptovima.
30MB ogromno? :confused: Malo je to, ja imam klijente sa po 700MB a i više.

bluesman 24. 02. 2009. 21:11

Mister, preko 30MB zipovano je ogromna baza (raspakovano je preko 120 MB), a ako ti mislis da saljes 700 MB mailom svaki dan, onda ovo definitivno nije tool za tebe. Za takve stvari je i napravljen FTP upload.

nixa 24. 02. 2009. 21:19

Ali Mister :D

bluesman 24. 02. 2009. 21:34

BTW, stavio sam v0.2, malo sam sredio neke notice koji se pojavljuju u E_STRICT modu kao i par slovnih gresaka + malo dodao komentara u kodu.

Gargoyle 24. 02. 2009. 21:56

Citat:

Mister, preko 30MB zipovano je ogromna baza (raspakovano je preko 120 MB), a ako ti mislis da saljes 700 MB mailom svaki dan, onda ovo definitivno nije tool za tebe. Za takve stvari je i napravljen FTP upload.
Ma ok, mister, samo konstatujem. :p U principu mi TREBA neki cron-abilni tool...
Ustvari kad razmislim, svi mi klijenti imaju "velike" baze. Znači tih 700MB kad se zipuje bude 150MB recimo. Sad nisam ni mislio da šaljem sve to svaki dan na mail, ali možda na svakih 10,15,30 dana, neznam .... automatski, ne bi bilo loše for safe keeping.

A imamo klijenta sa bazom i od 4GB ;)

ivanhoe 24. 02. 2009. 22:02

za velike baze je replikacija superiorna, jer se prenose samo izmene, a ne stalno da kopiras sve... onda samo povremeno uradis backup i na jednom i na drugom serveru i mirna backa...

bluesman 24. 02. 2009. 22:02

Mister, pa ovo i jeste "cron-abilini tool", zato sam ga i pravio da ga namestim da radi automatski svaki dan i trpa mi backup baza na neki drugi server.

A 150MB za ftp upload nije puno, to mozes slobodno da strpas u cron i da picis na FTP, pa cak i svaki dan. Ovo sto ti vidis demo je samo da se vidi kakve opcije postoje, postoji script koji se zove autobackup.php, i u njemu nema nikakve interakcije (kao u demo) vec samo include-ujes config i izvrsis script (bilo rucno ili preko cron-a), i on odradi sve kako si namestio. Mozes cak da imas poseban config za cron a poseban za 'interaktivnu verziju".

bluesman 25. 02. 2009. 16:19

Niko nema baš nikakav komentar? :)

Šalim se... napravio sam još opciju da se radi "move" na FTP, tako da se ne čuva lokalna kopija, kao i da se šalje report na mail da li je uspešan ili neuspešan FTP upload. Takođe je dodat language switch, tako da za sada ima engleski i srpski a sređeni su i neki NOTICE u E_STRICT modu, pa je došlo do verzije 0.3.1. :)

Evo ja sam upravo probao, radi cron i uploaduje na drugi FTP, briše lokalni file (radi move) i RAR-uje ga sa password-om. Sve za sada radi bez problema.

Ako ima neko neki predlog, neka kaže slobodno.

mangia 25. 02. 2009. 19:11

Kod mene su bekapi obicno u toku noci a tada mi SMS obavjestenje nikako nije poželjno :)

bluesman 25. 02. 2009. 20:03

Sad se babo češka po glavi i traži na svim stranama gde je nekada,... ikada pomenuo reč SMS. :D

jasmanac 02. 06. 2009. 18:59

Ajd da dignem temu iz mrtvih :)

Jel moze ova skripta da uradi backup nekoliko baza odjednom pri cemu su baze na istom serveru?

Takodje javlja neku gresku:

Kôd:

Parse error: syntax error, unexpected ';', expecting '(' in /home/8805/domains/vibrantdrive.com/html/db-bkp/index.php on line 70

bluesman 02. 06. 2009. 20:09

Taj isti script radi kod mene svakodnevno bez problema. Namešteno je nekoliko cron-ova da bi skidao baz po bazu (pošto su sve velike) umesto od jednom da skida sve što ima u mysql-u. Jednostavno je mnogo sigurnije da će da odradi sve kako treba ako radi jednu po jednu bazu, umesto nekoliko od jednom. A namešteno je da radi na 5 minuta razmaka, recimo u 5:00 jedna baza, u 5:05 druga... itd .. do poslednje baze. Može da se prepravi da radi više baza od jednom, ali ja trenutno nemam vremena za to.

Ako imaš tu grešku na toj liniji, moguće je da nije include-ovan language file. Pogledaj šta je u toj liniji pa mi javi.

jasmanac 02. 06. 2009. 20:30

OK sredio sam gresku, nije bio ukljucen PHP5.

Medjutim kada uradi dump sql fajl je prazan? Ima samo nekih 20B iako mi uredno prikaze Approximately 31,530 records, total raw data size: 1.49 MB.

I recimo dobijem success poruku : Dump successful (0 seconds). File saved in dbbackup.db8805_vibrant.02-06-2009.sql.gz, size: 20.00 B

Sta moze biti problem?

bluesman 02. 06. 2009. 21:05

Uh... nemam pojma sada za to, kao što rekoh testirano je samo na par servera (doduše totalno različiti ali opet to je samo 2-3 servera, a znamo kakvih sve "varijacija" ima), moguće da je neki server settings problem.

Ne znam šta ti je uključeno od opcija? Samo .gz ili RAR ili šta tačno stoji?

Recimo to koristim da pravim dump DTP baze u RAR i onda ga preko FTP šalje na drugi server u neki dir... radi tako već nekoliko meseci i ni jednom nije bilo problema.

jasmanac 02. 06. 2009. 21:18

Ja sam stavio gzip a server je MediaTemple.. Ajd probacu da stavim rar..

bluesman 02. 06. 2009. 22:00

gzip bi morao da radi po default-u, to je native za sve servere. Šta više dump se radi direktno u gzip umesto da se radi u SQL pa da se gzip-uje (osim ako nije drugačije namešteno u config-u)

jasmanac 02. 06. 2009. 22:02

Da, zato sam i stavio odmah gzip. Medjutim, sta god da stavim od opcija sve lepo upakuje ali je arhiva prazna iz nekog razloga.. damn..

bluesman 02. 06. 2009. 23:02

možda neke permissions ?

jasmanac 03. 06. 2009. 12:07

Sto se tice permisija, vec postoji 777 na backupdir i skripta sve uredno spakuje, i posalje na email. Znaci to radi.

Medjutim problem je sto je spakovani sql fajl prazan. E sada zasto je fajl prazan je velika misterija za mene :)

bluesman 03. 06. 2009. 12:33

Onda sigurno nije dobar neki od dump parametara, to je jedini mogući razlog. Kao što znaš, čak i ako pogrešeš mysqldump će ti napraviti file, ali prazan. Probaj ručno da odradiš dump sa tim parametrima pa ćeš videti ako ima neka greška. Možda password nije dobar ili ime baze ili neki od switcheva.

Inače, samo da napomenem da ja koristim rar ne toliko zbog pakovanja (nema ni smisla pakovati .gz u .rar) već da bih mogao da split-ujem u mutliple files i još važnije da bih zaštitio arhivu password-om ako se slučajno nešto ne predviđeno desi.

jasmanac 03. 06. 2009. 12:47

Evo sve uredno exportovao iz phpMyAdmin-a i baza je nekih 1MB.. Evo ga screenshot gde skripta sve izvrsi samo je fajl prazan.


bluesman 03. 06. 2009. 16:14

Nisi me razumeo... kada uradi export on generise mysqldump komandu koju onda izvrši... baci pogled na to, i probaj da izvršiš to isto iz shell-a - ako nije to problem - pošalji mi ovamo pa ću da pogledam šta može da bude frka.

Kada uradis "preview" trebalo bi da ti napise nesto ovako:

Kôd:

Configuration
Database:        root@localhost.db1
Dump exec:        mysqldump
Dump filename:    dbb.db1.Wednesday.sql.gz
Dump gzip:        yes
Options:          --add-drop-table --create-options -e -l -q
Compression:      rar
RAR command:      rar mf -ep1 -idp -o+
RAR password:    no
RAR chunks:      15000k
Use FTP:          yes
FTP location:    www.example.com:21/some/dir/ (passive mode)
FTP move file:    yes, delete local file after upload
Send email:      no

Evo sada sam proverio svoje backupe - svi su normalno odrađeni i pogledao sam sadržaje - sve je ok.

metaphysic 11. 10. 2010. 19:01

Da li neko koristi Auto BackUp plugin za WP
i koji
mozda sam promasio temu


Vreme je GMT +2. Trenutno vreme je 09:36.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.