Secondo voi come potrei realizzare la cosa?
Avevo pensato a usare SFTP o WebDAV (ma è sicuro?) sul server, mentre non so
bene cosa potrei usare sui client, che sono due sistemi GNU/Linux (Ubuntu e
Mandriva) e due Mac Os X Leopard.
Avete suggerimenti utili?
grazie a tutti
ciao
gerlos
--
"Solo lo scienziato è vero poeta: ci dà la luna, ci promette le stelle,
ci farà un nuovo universo se sarà il caso."
< http://gerlos.altervista.org >
gerlos +- - - > gnu/linux registred user #311588
Di soluzioni utilizzabili ce ne sarebbero già parecchie. Non hanno le
stesse caratteristiche, ma possono funzionare. Dipende dalle tue necessità.
Avendo a disposizione un server e un collegamento diretto a internet per
i client, potresti optare per una soluzione basata su unison (usa ssh
come protocollo di rete. Penso che riesca a fare anche altro).
C'è per Win, Linux e Mac.
Imposti un collegamento a stella (ogni client si sincronizza in modo
bidirezionale con il server)
Lanciato manualmente o con dei cronjob (o uquivalenti) permette una
sincronizzazione non in tempo reale di una o più directory tra i vari
sistemi.
Altrimenti cerca informazioni su sistemi simili a live-rsync (vado a
memoria, ma dovrebbe esistere un progetto simile), ma non sono sicuro
che ne esistano con sincronizzazione bidirezionale. Quelli che ho
trovato io in una piccola ricerca erano quasi tutti replicazioni live in
remoto, ma non permettevano una sincronizzazione bidirezionale.
Questo naturalmente funziona senza problemi se le macchine hanno accesso
alla rete (anche dietro firewall) e possono aprire connessioni ssh verso
il server. DynDNS per ritrovare il server da internet va benissimo.
Non funzionano se i client sono dietro proxy e non possono aprire
connessioni ssh verso il server (come in alcune reti aziendali).
Se i client sono solamente Linux e Mac, allora non esiste neanche il
problema dei permessi dei file.
Per soluzioni più sofisticate sto cercando ancora, ma non trovando nulla
penso che mi farò un mio sistema monopiattaforma (solo Linux) o
bi-piattaforma (Linux-Windows). Non sto snobbando il mac. Semplicemente
non ho macchine con MacOS su cui sviluppare e provare :-)
Luca
> Io ci ho pensato (e sono quasi pronto a partire per la realizzazione di
> un sistema simile).
Bene! Se pensi di realizzare un programma libero, non sapendo programmare (a
parte poche, semplici cose in python), mi candido come "collaudatore" ;-)
> Di soluzioni utilizzabili ce ne sarebbero già parecchie. Non hanno le
> stesse caratteristiche, ma possono funzionare. Dipende dalle tue
> necessità.
>
> Avendo a disposizione un server e un collegamento diretto a internet per
> i client, potresti optare per una soluzione basata su unison (usa ssh
> come protocollo di rete. Penso che riesca a fare anche altro).
> C'è per Win, Linux e Mac.
Ok, ho trovato unison nei repository delle mie distro, nessun problema,
purtroppo non ho ancora capito come installarlo sui Mac...
Il fatto che usa ssh mi sta benone, visto che di tanto in tanto mi vengono
paranoie sulla sicurezza delle connessioni ;-) Inoltre così non dovrei
aprire nuovi servizi...
> Lanciato manualmente o con dei cronjob (o uquivalenti) permette una
> sincronizzazione non in tempo reale di una o più directory tra i vari
> sistemi.
Beh, se anche la sincronizzazione fosse avviata ogni 3-5 minuti, per me
sarebbe /quasi/ in tempo reale.
Probabilmente, oltre alla sincronizzazione periodica, si potrebbe
sorvegliare la directory condivisa più spesso, e far avviare uno script di
sincronizzazione quando si trova un file creato o modificato di recente. Di
certo è fattibile su Linux come su Mac.
Inoltre leggendo qui:
http://www.ibm.com/developerworks/linux/library/l-inotify.html
mi sembra di capire che si potrebbe usare inotify per sorvegliare la
creazione o la modifica di file e avviare la sincronizzazione. Però non ne
so abbastanza per farmi un'idea concreta della fattibilità della cosa...
> Altrimenti cerca informazioni su sistemi simili a live-rsync (vado a
> memoria, ma dovrebbe esistere un progetto simile),
Parli di questo? http://code.google.com/p/lsyncd/
> Questo naturalmente funziona senza problemi se le macchine hanno accesso
> alla rete (anche dietro firewall) e possono aprire connessioni ssh verso
> il server. DynDNS per ritrovare il server da internet va benissimo.
>
> Non funzionano se i client sono dietro proxy e non possono aprire
> connessioni ssh verso il server (come in alcune reti aziendali).
No, non dovrei avere problemi di proxy.
Domanda accademica: In questo caso potrei usare webdav per aggirare il
problema?
> Se i client sono solamente Linux e Mac, allora non esiste neanche il
> problema dei permessi dei file.
Fortunatamente, non devo aver a che fare con macchine Windows, anche se non
sarebbe male se la soluzione funzionasse anche con quei sistemi, visto che
sono dappertutto.
> Per soluzioni più sofisticate sto cercando ancora, ma non trovando nulla
> penso che mi farò un mio sistema monopiattaforma (solo Linux) o
> bi-piattaforma (Linux-Windows). Non sto snobbando il mac. Semplicemente
> non ho macchine con MacOS su cui sviluppare e provare :-)
Chiaramente.
Devo ancora decidere. La scelta dipende da diversi fattori.
Nel caso, ne tengo conto.
Inserirò una clausola "alla Microsoft" che dirà:
«Non potrò essere ritenuto responsabile per perdita di dati anche se
imputabili a cattivo funzionamento del mio sw» :-)
[...]
>
> Ok, ho trovato unison nei repository delle mie distro, nessun problema,
> purtroppo non ho ancora capito come installarlo sui Mac...
>
Non saprei. Sul sito parla di macports (non ho assolutamente idea di
cosa sia). Al limite c'è la compilazione.
Mi sembra (prendi con le pinze questa frase e fai delle prove) che
client e server devono avere installata la stessa versione di unison.
> Il fatto che usa ssh mi sta benone, visto che di tanto in tanto mi vengono
> paranoie sulla sicurezza delle connessioni ;-) Inoltre così non dovrei
> aprire nuovi servizi...
>
Infatti è una soluzione ad impatto molto limitato.
>> Lanciato manualmente o con dei cronjob (o uquivalenti) permette una
>> sincronizzazione non in tempo reale di una o più directory tra i vari
>> sistemi.
>
> Beh, se anche la sincronizzazione fosse avviata ogni 3-5 minuti, per me
> sarebbe /quasi/ in tempo reale.
Decisamente, considerando che l'upload di un file da una adsl prende
anche diversi minuti ...
> Probabilmente, oltre alla sincronizzazione periodica, si potrebbe
> sorvegliare la directory condivisa più spesso, e far avviare uno script di
> sincronizzazione quando si trova un file creato o modificato di recente. Di
> certo è fattibile su Linux come su Mac.
>
Non so se su Windows esista già qualche programma che generi eventi sul
cambio di file e/o directory, ma tecnicamente è fattibile qualcosa di
simile anche lì (infatti Dropbox lo fa. È una API di uso molto semplice).
> Inoltre leggendo qui:
> http://www.ibm.com/developerworks/linux/library/l-inotify.html
> mi sembra di capire che si potrebbe usare inotify per sorvegliare la
> creazione o la modifica di file e avviare la sincronizzazione. Però non ne
> so abbastanza per farmi un'idea concreta della fattibilità della cosa...
>
Credo che venga utilizzato dal demone lsyncd che hai trovato.
>> Altrimenti cerca informazioni su sistemi simili a live-rsync (vado a
>> memoria, ma dovrebbe esistere un progetto simile),
>
> Parli di questo? http://code.google.com/p/lsyncd/
>
Yep.
[...]
>
> No, non dovrei avere problemi di proxy.
> Domanda accademica: In questo caso potrei usare webdav per aggirare il
> problema?
>
Mah, non ho mai utilizzato webdav, quindi preferirei non sbilanciarmi.
Da quel poco che ho visto, la risposta è "forse".
Dropbox utilizza un server con una serie di webapi ad hoc (anche il
client è ad hoc e a sorgente chiuso) per trasferire via http (o https?
dovrei controllare) solo frammenti di file.
>> Se i client sono solamente Linux e Mac, allora non esiste neanche il
>> problema dei permessi dei file.
>
> Fortunatamente, non devo aver a che fare con macchine Windows, anche se non
> sarebbe male se la soluzione funzionasse anche con quei sistemi, visto che
> sono dappertutto.
>
Unison lo fa. (PS: quelli di unison non mi pagano :-) )
>> Per soluzioni più sofisticate sto cercando ancora, ma non trovando nulla
>> penso che mi farò un mio sistema monopiattaforma (solo Linux) o
>> bi-piattaforma (Linux-Windows). Non sto snobbando il mac. Semplicemente
>> non ho macchine con MacOS su cui sviluppare e provare :-)
>
> Chiaramente.
>
> ciao
> gerlos
>
Ciao
Luca
la sparo lì, siccome il sistema è stato replicato da Ubuntu con il
servizio ubuntu-one (2 GB gratis se non erro), e i sorgenti sono dentro
ubuntu, perchè non inizi da lì?
i pacchetti in questione:
python-ubuntuone-client
python-ubuntuone-storageprotocol
ubuntuone-client
ubuntuone-client-gnome