Portál AbcLinuxu, 12. května 2025 08:59

Dotaz: Jak pravidelně zálohovat GIT server?

22.9.2015 12:59 majales | skóre: 29 | blog: Majales
Jak pravidelně zálohovat GIT server?
Přečteno: 429×
Odpovědět | Admin
Ahoj, Mám virtuál který plní funkci GIT serveru pro cca 5-6 uživatelů. Chtěl bych ho nějak efektivně zálohovat, tj. alespoň každý den přírůstky a jednou za měsíc ( týden ) plnou zálohu. Napadlo mě naklonovat ho někam jinam a vzdáleně pak dělat jen update. Ale nevím jak z toho udělat full zálohu kterou pak můžu někam umístit. Poradíte někdo?
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.9.2015 13:35 Filip Jirsák
Rozbalit Rozbalit vše Re: Jak pravidelně zálohovat GIT server?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud chcete zálohovat jenom ty Git repozitáře, prostě je jen někam naklonujte a pak na tom klonu pravidelně dělejte pull. Ten klon pak bude plnohodnotnou zálohou. Případně ho pak můžete rozkopírovat na kolik médií chcete.
22.9.2015 13:46 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Jak pravidelně zálohovat GIT server?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle mě stačí zálohovat adresář, odkud git servíruje ten projekt. Se zachováním práv samozřejmě, takže v prvním přiblížení třeba tarem. Pak dodělat inkrementální zálohy třeba pomocí rdiff-backup.

Nejsem si jist, zda budou zálohovaná všechny branche, pokud byste jen klonoval projekt jinam.

Tak jako tak si vyzkoušejte obnovení ze zálohy.
-- OldFrog
Heron avatar 22.9.2015 14:09 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Jak pravidelně zálohovat GIT server?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Git má rozumně navržené úložiště, takže se docela dobře a snadno zálohuje rsyncem (přenášejí se jen nově vytvořené bloby, je to velmi rychlé). Pochopitelně do chvíle, než se udělá git gc (nebo repack), to se potom přenese opět vše (což klidně můžete spojit s tou fullkou).

Buď můžete použít rsync tak jak je, tedy na cílovém serveru budete mít podobu repositáře tak jak na zálohovaném stroji, nebo použijte nějakou nadstavbu (rsnapshot, rdiff-backup, backuppc) a mít tak nějakou historii, kdyby se ten git repos nějak pokazil.
Heron
24.9.2015 06:24 citanus | skóre: 12 | Cork (Ireland)
Rozbalit Rozbalit vše Re: Jak pravidelně zálohovat GIT server?
Problem s rsyncem u muze nastat u vetsich repozitaru. Pokud nahodou pri zaloze bezi push nebo treba garbecollect tak vysledna zaloha skonci nekonzistentni. V minulosti nato narazily napr. na githubu.

22.9.2015 14:19 majales | skóre: 29 | blog: Majales
Rozbalit Rozbalit vše Re: Jak pravidelně zálohovat GIT server?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zatím to mám takto. Pro každý projekt jsem udělal mirror na vzdáleném serveru pomocí:
git clone --mirror git@IP:/project1
A pak dělám update takto:
cd ../project1.git; git remote update
Vyzkouším popřemýšlet ještě o tom rsyncu. Každopádně dík za nápady.

Max avatar 24.9.2015 08:47 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Jak pravidelně zálohovat GIT server?
Já bych rsync samotný nepoužil. U fileserveru je to jedno, ale u gitu apod. bych chtěl mít konzistentní data z jednoho času. Proto bych to řešil tak, že bych měl git na nějakém fs, co umožňuje snapshoty a vždy vytvořil snapshot a nad ním spustil rsync. Po doběhnutí bych pak snapshot zase zrusil.
Na druhou stranu, při malém počtu lidí a nějaké nočně ranní záloze je pak velmi malá pravděpodobnost, že ti tam někdo v době zálohy hodí commit.
Zdar Max
Měl jsem sen ... :(
pavlix avatar 24.9.2015 09:15 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Jak pravidelně zálohovat GIT server?
Chtělo by to podporu anonymních snapshotů vázaných na konkrétní proces, nad kterými by pak probíhaly další operace.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Heron avatar 24.9.2015 09:43 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Jak pravidelně zálohovat GIT server?
U fileserveru je to jedno

Právě u fileserveru bych už nic jiného než snapshoty nepoužil. Tam fakt není jedno, že se záloha odehraje někde uprostřed kopírování nějaké velké dávky uživatelských souborů (takže z adresáře o tisíci souborech je na záloze jen prvních 500).

ale u gitu

Možná mě někdo opraví, ale git je afaik navržený tak, že tento způsob nevadí, Prostě tam maximálně budou nějaké soubory navíc, ale staré se nepoškodí. Také proto při klonování na lokálním fs používá místo kopírování blobů hardlinky (staré soubory se nikdy nemění, jen se případně někdy mažou).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.