Synchronizace offline

Boo

Synchronizace offline
« kdy: 22. 06. 2016, 14:43:20 »
Potrebuji synchronizovat velke binarni soubory mezi dvema pocitaci. Neco na styl gitu, proste to zaznamena ktere soubory byly zmeneny, zmazany nebo pridany. Pak chci dostat seznam souboru ktery je potreba prenest na druhy pocitac protoze byly zmeneny/pridany. A druhy seznam co smazat. Git nelze pouzit ponevac .git adresar by byl enormni, ja nepotrebuju vedet co se v souboru zmenilo, jenom soubor se zmenou.

Nemusi to bezet nonstop, proste v pondeli to supustim, udela nejake crc/md5 sumy do souboru ktery mu
zadam. Pak to v patek spustim zase, prepocita ty checksumy, porovna s pondelnimi a udela report. Souboru
je kolem 20000, jestli pockam 10 minut na ten diff nevadi. Uplny luxus by byl kdyz to rovnou ty zmenene soubory
nakopiruje na USB disk (i s patricnou adresarovou strukturou takze na cili mi staci copy).

A ted to prijde - omezeni:
  • jeden pocitac je linux (ubuntu 15)
  • druhy pocitac je windows 7
  • syncovat chci oba smery tedy jak lin->win tak win->lin.
  • jenom offline synchornizace pres USB disk

Idealni by bylo neco jako https://sourceforge.net/projects/deepdigest/ jenomze to nema windows verzi. Muze byt
i nejaky commandline, jen at ty utilitky jsou taky pro windows.


JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Synchronizace offline
« Odpověď #1 kdy: 22. 06. 2016, 17:07:21 »

Petr M

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Synchronizace offline
« Odpověď #2 kdy: 22. 06. 2016, 20:56:57 »
Co takhle klasiku - Unison?
- Jede pod tučňákem i pod widlema
- Otevře se okno, proskenuje adresář a vypíše změny.
- Dá se tam vybrat směr přesunu nebo ignorování pro každý rozdíl
- Když je hotovo, stačí kliknout a překopíruje se to
- V textovým souboru se dají vytvořit profily s předvolbama, není tak potřeba furt zapisovat cesty. Stačí hodit v terminálu unison MujProfil a všechno se načte z konfigurace.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Synchronizace offline
« Odpověď #3 kdy: 22. 06. 2016, 22:11:08 »
A jde to kompletne automatizovat, aby clovek pokazde nemusel hodinu klikat v GUI?

boo

Re:Synchronizace offline
« Odpověď #4 kdy: 22. 06. 2016, 23:02:55 »
Dekuji za navrhy, bohuzel nic nevyhovuje, cekal jsem spise ze mi nekdo poradi co to presne takhle dela jak to chci ja. Tady me vyhrady k navrhum:

rdiff
- vytvari soubor s checksumem pro kazdy soubor zvlast, bordel horsi nez svn :)
- misto aby mi rekl ktery soubor se menil musim vytvaret nejake delty a ty pak patchovat na cili, ja chci dat na USB cele soubory, ne kusy se zmenou
- vypada to spise na soft pro incrementalni backup nez na offline synchronizaci
- bez doprogramovani nejakyho ridiciho skriptu nepouzitelne

unison (a zrejme vsechno co pouziva rsync)
- to je spise na syncovani dvou adresaru existujicich nebo pres sit viditelnych z pocitace na kterem prave sem. To pro mne neni mozne.


JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Synchronizace offline
« Odpověď #5 kdy: 22. 06. 2016, 23:42:44 »
@boo: Tak bordel to je, ale mel by se tykat jen USB disku. Na cili pak skoncite s opatchovanymi soubory bez bordelu, coz je to, o co vam jde. Jak se toho dosahne je snad jedno. A to, ze se neprenasi cele soubory, ale patche, ma sve vyhody. USB disk neni zrova nejrychlejsi, zejmena pak flash. A flash kolikrat neni z nejvetsich. Takze by byla blbost, abyste kvuli zmene jednoho bitu musel kopirovat 10 GB dat.

Jinak jestli jste si precetl ten clanek, co jsem k tomu nalinkoval, tak pokud vas oba chapu spravne, tak jak vy, tak autor, resite stejny problem a mate tam k tomu i prilozene skripty, takze by melo stacit spustit, mozna trochu priohnout a je to.

To, co hledate, asi neni prilis bezne, takze pokud se vam nelibi reseni Perlem a rdiffem, budete asi muset poridit vetsi disk a na onou koncich to rsyncovat cele.

Sten

Re:Synchronizace offline
« Odpověď #6 kdy: 22. 06. 2016, 23:43:29 »
unison (a zrejme vsechno co pouziva rsync)
- to je spise na syncovani dvou adresaru existujicich nebo pres sit viditelnych z pocitace na kterem prave sem. To pro mne neni mozne.

To je na synchronizaci toho USB s počítačem. Poté to USB přenesete a synchronizujete s ním druhý počítač. A znovu přenesete a synchronizujete. Na USB budete mít kopie těch souborů, přesně jak chcete.

boo

Re:Synchronizace offline
« Odpověď #7 kdy: 23. 06. 2016, 00:18:55 »
Asi sem se spatne vyjadril, na tom USB disku (suplik s harddiskem btw, zadny flash) neni nic. Je prazdny, slouzi jen na prenos zmenenych souboru. Po prenosu se ty soubory z neho mv na cil a je zas prazdnej. Tedy nemuzu udelat neco jako unison /tmp/data /mnt/usb/data . Proste chci:
  • rano spustim: udelatko crc --path=/tmp/data --out=checksumy.0800.xml nebo jiny pratelsky format co muzu pripadne editovat a vyhodit dodatecne co nechci
  • soubory v /tmp/data se meni
  • vecer spustim: udelatko crc --path=/tmp/data --out=checksumy.1700.xml
  • a pak to necim dat na usb: udelatko copydiff --crcOld=checksumy.0800.xml --crcNew=checksumy.1700.xml --target=/mnt/usb/data --delFile=/mnt/usb/vymazat.txt

dustin

Re:Synchronizace offline
« Odpověď #8 kdy: 23. 06. 2016, 00:27:21 »
Skoro bych řekl, že už máš algoritmus promyšlený. Možná by bylo nejjednodušší to hodit třeba do pythonu a na win stroj si jej nainstalovat. A měl bys hotovo, přesně dle svých specifických potřeb.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Synchronizace offline
« Odpověď #9 kdy: 23. 06. 2016, 00:46:00 »
Asi sem se spatne vyjadril, na tom USB disku (suplik s harddiskem btw, zadny flash) neni nic. Je prazdny, slouzi jen na prenos zmenenych souboru. Po prenosu se ty soubory z neho mv na cil a je zas prazdnej.

Obavam se, ze tohle bude problem. Kdyz ten disk je prazdnej, tak prichazim o jakoukoliv synchronizacni informaci. Takze to asi budete muset resit tak nejak, ze si napisete vlastbi skripty. Budete muset udrzovat checksumy pro vsechny soubory, pricemz kazde spusteni skriptu pro vypocet checksumu vam vylivne zaroven i seznam souboru, kde doslo ke zmene, abyste vedel, co ma dalsi skript kopirovat na USB. Pak to odnesete na druhou stranu, tam vypocitate checksumy, seznam souboru generovat nenechate, protoze by vam byl na nic a pri odchodu z prace zase vsechno obracene.

Mozna by na popsane sel vyuzit nejaky Tripwire. Pocitam, ze takova vec by mela umet generovat seznam zmenenych souboru v nejakem parsovatelnem formatu.

https://en.wikipedia.org/wiki/Open_Source_Tripwire

Jenda

Re:Synchronizace offline
« Odpověď #10 kdy: 23. 06. 2016, 01:40:03 »
Asi sem se spatne vyjadril, na tom USB disku (suplik s harddiskem btw, zadny flash) neni nic. Je prazdny, slouzi jen na prenos zmenenych souboru. Po prenosu se ty soubory z neho mv na cil a je zas prazdnej. Tedy nemuzu udelat neco jako unison /tmp/data /mnt/usb/data . Proste chci:
  • rano spustim: udelatko crc --path=/tmp/data --out=checksumy.0800.xml nebo jiny pratelsky format co muzu pripadne editovat a vyhodit dodatecne co nechci
  • soubory v /tmp/data se meni
  • vecer spustim: udelatko crc --path=/tmp/data --out=checksumy.1700.xml
  • a pak to necim dat na usb: udelatko copydiff --crcOld=checksumy.0800.xml --crcNew=checksumy.1700.xml --target=/mnt/usb/data --delFile=/mnt/usb/vymazat.txt

No vida. Takže si na widle nainstaluj cygwin a napiš si jednoduchý skript, který udělá "find | xargs sha1sum" a potom "diff; ty, co liší, cp, ty, co zmizely, do souboru a na druhé straně xargs rm".

Re:Synchronizace offline
« Odpověď #11 kdy: 23. 06. 2016, 07:09:17 »
cekal jsem spise ze mi nekdo poradi co to presne takhle dela jak to chci ja
Na to vám odpovědět můžu: nic.

A mimochodem, pokud dotaz zní: „Chci něco, co bude fungovat přesně tak, jak jsem si vymyslel,“ je „nic“ ta nejpravděpodobnější odpověď.

Pokud opravdu chcete vyřešit svůj problém, přestaňte popisovat, jak by to mělo fungovat, a popište, jaký problém řešíte.