Portál AbcLinuxu, 30. dubna 2025 23:31
Pročítám web a nemůžu se rozhodnout, jakým způsobem zálohovat SVNko. Jsou dvě cesty, teda co sem našel. Buď pomocí svnadmin dump anebo pomocí hot-backup.py. Jaký je mezi nimi rozdíl? Budu rád, za každou radu. Ke konci článku bych chtěl udělat malý závěr na toto téma.
Co poskytuje hot-backup.py navíc? V článku pod tímto odstavcem sem našel velmi zajímavou věc, že během spuštění hot-backup.py nelze commitovat. Což je z praktického hlediska velmi užitečné. Vím, zdá se, že by to mohlo být samozřejmé, ale taková situace může nastat, kdy během zálohy může kolega commitovat. Nutno dodat, že script dle článku je spustitelný po commitu (post-commit).
SVN Backups Documentation
Dle dokumentace a příspěvků níže uvedených je primárním problémem při zálohování konzistence zálohy. Je možné říct, že nejbezpečnějším způsobem je spuštnění jakéhokoli scriptu pro zálohování, v době, kdy nedojde ke commitu.
Nabízí se otázka, na kterou momentálně nedovedu odpovědět, zda je možné tento proces ošetřit, např. cron spustí proces, kt. upozorní emailem tým o času, kdy dojde k záloze s předstihem, s tím, že po doběhnutí tohoto časového předstihu zamknout repositář a provést zálohu. Je však zamknutí repositáře možné?
Dle oficiálního manuálu lze zálohovat SVN:
Tiskni
Sdílej:
svnsync
vim ~/.emacs
vim ~/.emacs
vim ~/.emacs
[...] ručně provedené "po pracovní době" [...]Jsi málo línej. K tomuhle máme cron.
Jasně, ale přemýšlím o nějakém sofistikovaném řešení, kt. sem uvedl v článku (nepravidelně jej rozšiřuji) problémy se zálohováním.
Prozatím jde o přenesení zálohy na jiný server, takže v tento moment dojde k jediné záloze s tím, že na druhém serveru, chci vytvořit výše uvedené řešení, zdali to bude možné.
Prostá kopie repozitáře nemusí být přenositelná na jiné systémy/verze.Zapoměl sem říct podstatnou informaci. Tento repositář není pro mě pro domácí použití slouží pro tým vývojářů.
svnadmin dump
. Mám na to takovýto skript:
#!/bin/bash if [ `id -u` -ne 0 ]; then echo 1>&2 "This script must be executed under root" exit 1 else if [ ! -d subversion ]; then mkdir subversion fi rm -f ubversion/svn.localhost.dump.bz2 rm -f subversion.dmg svnadmin dump /opt/local/var/db/subversion/repos/ | bzip2 -9 > subversion/svn.localhost.dump.bz2 chown -R petr:petr subversion/ echo -n "${DMG_PASSWORD}" | hdiutil create -srcfolder subversion/ -fs HFS+ -volname 'SubVersion Backup' -uid 99 -gid 99 -stdinpass -encryption CEncryptedEncoding subversion.dmg rm -rf subversion/ chown petr:petr subversion.dmg fiProstě to všechno zazálohuje a pak to "zabalí" do kryptovaného DMG souboru. Je to na jistotu, ale trvá to dlouho, pakliže toho v repozitory máte poměrně dost. To mi ale nevadí, protože mám repozitory sám pro sebe
Pročítám stránky Git. Na první pohled se mi to jeví, jako přenést kompletně repositář SVN pod GIT a tím změnit správu pomocí SVN.
Anebo si myslel provést zálohu skrze nástoje GIT - pak se ptám, zda je možné tento formát převést zpět na SVN.
svnadmin dump
nemá cenu kontrolovat nějaké adresáře, protože výstupem programu je jeden stream (a tedy i jeden soubor cp -a
nemusí být nejlepší. Protože tak ale subversion repozitáře zálohuju, chtěl jsem se dovědět víc. Našel jsem pěkné vysvětlení zálohování subversion repozitáře.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.