Cau,
mozes pozret
https://github.com/gman0/fsync - zatial to vie posielat nove subory a mazat uz neexistujuce (na cielovom pc). Je to len jednosmerna synchronizacia ale samozrejme moze spustit server aj tam aj tam (na inom porte samozrejme). Planujem pridat este posielanie zmien zo suboru. Ak to teda budes chciet pouzit tak netreba instalovat libboost_thread pretoze to tam teraz nic nepouziva a asi pouzivat ani nebude takze vymaz z Makefile serveru (src/server/Makefile) -lboost_thread. Configy, logy a databazu uklada do ~/.fsync a este mozem ukazat nejaky "ukazkovy" config:
~/.fsync/server_config.conf
# path ID:/absolutna/cesta/ku/zlozke
# Toto priradi ku ID (cele kladne cislo) nejaku *absolutnu* cestu ku zlozke
# ID tu sluzi na to, ze klient bude mat v configu taktiez nadefinovanu nejaku
# cestu taktiez s tymto ID a bude posielat vsetky poziadavky na tuto zlozku.
# Cize ak mame nejaky subor ktory sa nachadza v /home/foo/test_server/bar
# tak jeho cesta je vlastne 1:bar a ked sa bude posielat ku klientovy tak sa
# 1 zameni za jeho (klientovu) definiciu cesty s ID 1
#
# mozes pozret https://github.com/gman0/fsync/blob/master/src/ConfigParser.h#L34
# tam je popisanych este par veci o konfiguracii ciest)
path 1:/home/foo/test_server
# path -ID:/relativna/cesta/ku/suboru/alebo/zlozke
# Tento subor/zlozka sa nebude synchronizovat. Vzdy musi najskor existovat
# ID (povedzme 1) aby sa ku nemu mohla vytvorit "exkludacia".
# Tj. mame nadefinovanu cestu 1:/home/foo/test_server a ak si nadefinujeme
# exkludacnu cestu -1 tak ta cesta za dvojbodkou je relativna ku ceste s ID 1.
# Trochu normalnejsie napisane: ak mame v /home/foo/test_server subor hmm
# tak sa nebude synchronizovat.
path -1:hmm
# zapne rekurzivne prechadzanie adresarov (defaultne je vypnute)
recursive_search true
# nastavi port serveru na 2000 (co je vychodzia hodnota cize ak nechces
# pouzit iny port tak toto tu ani netreba
port 2000
~/.fsync/client_config.conf
# nastavi ip adresu servera (ku ktorej sa bude pripajat)
host 192.168.1.2
# nastavi port servera
port 2000
# Ako som uz spominal vyssie, server ma nadefinovanu cestu s ID 1
# a z tadial sa budu prenasat/mazat subory do nasej klientskej cesty
# s ID 1.
path 1:/home/foo/test_client
Este by som dodal ze fsync je napisany v C++ takze treba g++ a taktiez to (ako je napisane v README), je to este stale
work-in-progress takze mozu byt nejake bugy, este tam chyba mnoho funkcionality.
===
Je urcite vela nastrojov na synchronizaciu takze asi nie je dovod pouzivat takyto nedorobok

.
Ak to teda budes chciet vyskusat tak este treba spomenut ze server si vytvara databazu suborov (db tu sluzi na kontrolu novych/zmenenych/vymazanych suborov) a na zaciatku oznaci vsetky tie subory za nove takze sa ich bude snazit poslat klientovy (tj. ak ich na klientovy uz mas tak by bola blbost ich tam znova posielat)...hadam nabuduci tyzden tam pridam prepinac aby to vytvorilo db ale neposielalo tie subory...alebo ak sa ti chce hrabat v zdrojaku tak
https://github.com/gman0/fsync/blob/master/src/ConfigParser.h#L34 - vsetko v tejto funkcii (konstruktore) od toho riadku zakomentuj a pridaj tam
m_fileGatherer->updateDb();
potom len spusti server, vytvori db a vypne sa..TADAAAA!!! taktiez to na konci spadne koli tomu ze uvolnuje nealokovanu pamat (ale to ta zaujimat nemusi, ved predsa mas databazu!). Teraz to daj do povodneho stavu a mas:D