Segédprogramok

[megoldva] git inkrementális online backup

Fórumok

Git szerver backupját szeretném jól (hatékonyan és biztonságosan) megoldani online backup klienssel. A cél az, hogy a backupból tetszőleges múltbéli állapot visszaállítható legyen, és még egy szándékos szerver rongálás után is visszaállítható legyen a backup, még akkor is, ha már a szerver törölt változatára is lefutott a backup - mert mondjuk nem állítottuk a backup szervert le időben.

Azt gondoltam ki, hogy ha egy bare repóba klónozom a backupolandó repót (amit egy szerveren elérhető), akkor az máris egy backup.

(Utánaolvastam, ez egyedül a note-okat nem másolja le, de azt éppenséggel nem is használunk, tehát nem gond. Első kérdés: van más információs, amit egy sima klón nem vesz át?)

Ha a backupot git fetch-csel frissítgetem (tehát a backup kliens/szerver kezdeményezi a mentést, nem a főszerver pusholgatja), akkor mindig a szerver állapotát fogja tükrözni, és a mentéshez használt sávszélesség és diszkterület is optimális lesz.

A probléma csak az, hogy ha a szerveren forced push-sal törölnek néhány kommitot, akkor az a backupon is törlődni fog - mivel a fetch a ref és tag-eket az új kommitra fogja állítani, elveszik az információ, hogy hol voltak előtte.

Erre azt a megoldást találtam ki, hogy a fetch után minden branch-re és tag-re csinálok egy backup tag-et valami ilyes formátumban (kivéve persze a régebbi backup tageket, amiket már nem duplikálok újra meg újra):

backup-YYYYMMDDHHmm-salt-tag-eredetitag
backup-YYYYMMDDHHmm-salt-branch-eredetibranch

Ezzel a szerveren nem tud ütközni semmi - mivel a salt rész egy kellően hosszú random string (pl pwgen által adott). Ezután nyugodtan feccselgethetem a repómat a szerverről, akármi is történik a szerveren, ebből a repóból vissza tudom állítani bármelyik pillanatkép állapotot.

Ha a git szervert feltöri egy támadó, még ő sem tudja a backup múltját elrontani, mivel a salt-ot nem ismeri, tehát a backup tag-eket nem tudja felülírni. (Mivel a fetch csak újat létrehozni és meglévőt módosítani tud, de wildcard törölni nem. Jól tudom ezt?)

Visszaállítás: az adott dátumra eső tageket kivéve az összes taget és branchet töröljük, majd a backup tageket visszanevezzük az eredetire.

Sávszélességben mindig csak az új kommittok diffjei utaznak (ahogy a git fetch-csel általában), tárolásban pedig kiaknázható a git deduplikációja. Tehát mindkét szempontból optimális-közeli a megoldás.

Kipróbáltam az elrendezést, egy sima forced push esetet (pl branch rebase) simán lekezel, valóban megmarad a "régi" állapot a backup gépen az adott tag alatt.

A kérdéseim:

* Van-e hiba az okoskodásban? El tudja-e rontani a backup múltját egy támadó, ha azt tesz a szerverrel, amit akar?
* Van-e olyan információ egy git repóban, amit a módszer nem tárol el egyáltalán, vagy nem biztonságosan visszaállítható formában tárol?
* Máshol is így csinálják a git-ek backupját, vagy feltaláltam a spanyol viaszt? Nem találtam hasonló megoldást guglizással eddig.

Szerk.:

Az alap elképzelés maradt, de finomítottam rajta:

* A fetch-nek megadom paraméterként, hogy mely refs alatti névtereket frissítse. Pl: +refs/heads/* +refs/tags/* (ezzel lehet pull requestet, vagy note-ot is kezelni) Így a config file-tól függetlenül jól fog működni. A plusz jel is kell, hogy a távoli esetleges forced pushokat is jól kezelje.
* -p kapcsolóval fetch-cselek, ez a heads és a tags alól kigyepálja a szerverről eltűnteket. Így az adott dátumhoz tartozó backupban nem lesznek jelen az adott dátummal már nem létező ref-ek (pl egy feature branch, amit végül töröltek)
* git update-ref paranccsal a refs/backup névtér alá csinálom a backup referenciákat. Mivel erre nincs fetch, ez távolról láthatatlan marad szándékos támadástól is (nem kell salt sem), illetve a prune sem törli. Viszont az objektumokat megtartja, tetszőleges dátum visszaállítható. A gitk programban is vizualizálódik, hogy a helyükön vannak ezek a jelölők.

Egyelőre jónak tűnik, egy darabig futtatom és nézegetem, hogy jó-e amit csinál.

Fotók digitalizálásához szoftver

Fórumok

Üdv!

Feladat: szkenner lapjára tenni annyi képet amennyi elfér, majd digitalizálni, végül képenként kivágni és menteni.

Ami fontos lenne, hogy a kivágás automata, vagy legalább félautomata legyen (értsd: manuálisan mutatom meg a programnak a kép(ek) négy sarkát és ez alapján végzi a vágást), és nem nekem kell foglalkoznom a kép kiegyenesítésével, meg egyéb felmerülő nyűgökkel.

Mindezt jó lenne viszonylag egyszerűen és ergonomikusan végezni (tehát az adott funkciót nem egy hatalmas bonyolult program negyedik almenüjének kilencedik pontjából elérni)

Sajnos google nem nagyon segített, bár az a valószínű hogy csak nem jól kerestem. Nehezen hiszem el, hogy rétegigény lenne egy ilyen szoftver.

Platformban jó Windows is, Linux is.

Köszi

Morphomouse

Fórumok

Üdv! Morphomouse szótár programot használok Wine 1.9.19-el. A keresett szavak esetén nem jeleníti meg a fonetikus kiejtési jeleket normálisan. Linux Mint 18 van jelenleg a gépemen. Mikor Mint 17.3-at használtam nem volt gond. Mi lehet a probléma? Wine vagy a Mint 18 miatt jelentkezik a probléma? Itt van egy képernyőkép is az esetről. http://www.kephost.com/image/cQfC

MEGOLDVA - phpMyAdmin 3.2.5 frissítése 4.0.10.17-re

Fórumok

Kedves Mindenki!

A minap a következő problémával szembesültem:

Adott két (több éve változatlan konfigurációval működő) MySQL szerver. Az egyik szerveren az 5.1.X, a másikon az 5.5.X fut. Tegnapig gond nélkül kezeltem mind a kettőt a phpMyAdmin 3.2.5 alól, ám úgy gondoltam ideje lenne váltani egy szinttel feljebb, azaz lecseréltem az évek óta tökéletesen működő 3.2.5-öt 4.0.10.17-re. No, itt kezdődtek a bajok. Változatlan MySQL és phpMyAdmin konfiguráció mellett a phpMyAdmin nem hajlandó belépni a webfelültre, a MySQL logba pedig a következő üzenetet tolja be:

1788455 Connect user@szerver.hu on
1788455 Query SET CHARACTER SET 'utf8'
1788455 Query SET collation_connection = 'utf8_general_ci'
1788455 Quit
1788456 Connect @szerver.hu on
1788456 Connect Access denied for user ''@'szerver.hu' (using password: YES)
1788394 Quit

A kérdés adott: ez miért van? A Google-t természetesen már megkérdeztem, érdemi választ azonban nem kaptam.

Üdv: LittleT

PROBLÉMA: Hiába az eredeti helyről letöltött (és validált) program, ha a fejlesztők bugfix címén elszúrják a kódot (és vele együtt az alap működést).

MEGOLDÁS: Mivel nem volt időm debuggolni és kódolni, így feltettem a 4.0.10.16-ot, ami kiválóan működik.

KONKLÚZIÓ: Nincs (szofisztikáltan leírható) véleményem.

TotalCMD ftp kapcsolat várakozás (warftpd)

Fórumok

Üdv!
Adott néhány Win7 (Home Premium) gép, ahol a TotalCMD ftp kapocslatot létre tudja hozni (látszólag), de "Almappa" feliratú ablak ott marad ("Mégsem" gombbal). Azaz igazából nem jelenik meg a mappastruktúra.
Bármilyen TotalCMD verzióval próbálom, mindig ugyanez van. Más (ugyanilyen) gépekről tökéletesen működik.

A szerver oldalon egy WarFTPD (1.82) fut.

Van ötlete valakinek, hogy mi lehet ez?

hashbackup tapasztalatok

Fórumok

Sziasztok,

mivel az egyik szerveremen az rdiff-backup hálózati szakadás után elment zombi állapotba, körülnéztem, hogy hátha előrébb lépett már a tudomány....
Pár rendszeren már használom a borg-ot, de mivel ez nem egy frissíthető régi rendszer, így a python függőségekkel nem telepíthető...

Véletlen beleakadtam egy hashbackup nevű programba, ami az eddigieknél sokkal gyorsabbnak tűnik és elképesztő mi mindent tud.

pl. a host-on összerakja a deduplikált tömörített file-split-et (minden paraméterezhető korlátok közt), majd egyben titkosítva elteszi a backup rendszerre, ami gyakorlatilag s3-tól kezdve egy usb-ig bármi lehet.

van valakinek ezzel tapasztalata, mert én még sosem hallottam róla?

link: www.hashbackup.com

Az rsync elakad

Fórumok

Szervusztok!
Egyértelmű, hogy az én gyengeségem, de eddig még sosem sikerüólt magamnak bellőnöm működőképesen az rsync-et. Kb. minden gépen másként megy.

A gépem adatairól szeretnék biztonsági másolatot készíteni az egész rendszeremről, amiben van egy (két HDD-ből álló, ext4-re formázott) lvm logikai meghajtó, és egy ssd, egy másik meghajtóra, úgy, hogy törölje a biztonsági mentés során a mentendő helyen nem lévő fájlokat onnan, ahová mentem.

Ezt a kódot használom: sudo rsync -arvu --delete --progress / /media/másik_usb-s_külső_HDD

Nos ebből a parancssorból nem működik a --delete kapcsoló, és futás közben egyszer csak elakad (mindig egy txt fájlokat tartalmazó felhasználói könyvtár elemeinál), és azt írja, hogy:

rsync: mkstemp "/media/._IGP0333.PEF.d47cdc5fcf1ff2e7fb498b81c8f5974d.txt.4Aqqq4" failed: Read-only file system (30)
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at io.c(521) [generator=3.1.0]
rsync: [generator] write error: Broken pipe (32)

Hm. Rendszergazdaként futtatom, milyen gond ez már? Tehát én itt akadám el, az rsync-et követve. Szégyellem, de úgy tűnik, hogy kézi irányításra szorulok, azaz jó szándékú segítségetekre.