Newsgroup: it.comp.os.linux.sys
Titolo: rsync, non ci riesco

Ciao a tutti,
probabilmente sto annegando in un bicchier d'acqua, sarï¿œ la stanchezza,
sarï¿œ l'etï¿œ.....
Dovrei sincronizzare due directory su due server: uno locale, uno remoto
i due server sono connessi in VPN.
I file sono quasi tutti jpg ad alta risoluzione e pdf pesanti, anche se le due 
LAN sono in VPN non mi ï¿œ possibile avere una directory unica su un lato, e far 
accedere l'altro utente alla stessa directory (sarebbe la situazione ideale) 
poichï¿œ la linea dati ha banda bassissima e durante il giorno ï¿œ giï¿œ impiegata 
per scopi con maggior prioritï¿œ rispetto a questa.
Non occorre che la sincronizzazione dei due PATH sia in tempo reale, quindi 
l'rsync lo faccio fare di notte.
Sul server locale in quella directory (PATH_1) un utente aggiunge, modifica, 
aggiorna, cancella file
Sul server remoto in quella directory (PATH_2) un altro utente aggiunge, 
modifica, aggiorna, cancella file
 
Se eseguo queste due righe:
rsync -a PATH_1 PATH_2
e poi:
rsync -a PATH_2 PATH_1
Ottengo il sync delle due directory. (C'ï¿œ forse un altro modo ?)
 
Se da un lato cancello un file, con il successivo rsync me lo ritrovo ancora,
perchï¿œ ï¿œ vero che lo cancello da una parte, ma dall'altra parte quel file c'ï¿œ
ancora e l'rsync me lo ricopia indietro.
Come cavolo si fa a sincronizzare la cancellazione ?
L'opzione --delete non la posso utilizzare poichï¿œ in un sol botto mi 
cancellerebbe i nuovi file aggiunti sull'altro lato, dall'altro utente.
L'unica soluzione che mi viene in mente ï¿œ creare all'interno di quelle 
directory, due directory con i nomi delle due cittï¿œ e far collocare 
all'interno di queste i rispettivi file e rendere responsabili gli utenti per 
la cancellazione dei file all'interno della propria area (directory) in questo 
caso posso utilizzare rsync --delete con l'adeguato PATH, ma non mi sembra il 
metodo migliore.
 
Altre soluzioni ?
Grazie
fulvio
 
 
 


Forse non ho chiaro il tuo problema fino in fondo,
ma da quello che ho capito non e` "rsync" il tool
che cerchi.
 
Forse meglio usare un sistema di version control
distribuito, con sincronizzazione notturna.
Oppure un file system distribuito atto allo scopo.
 
bye,
 
-- 
 
piergiorgio

 
 
Presto dovrò aggiornare il sistema e non so se re-implementare Unison.
Conosco un drbd, ma nessun altra alternativa. A cosa ti riferisci di preciso?
Una soluzione con drbd tramite VPN è sufficientemente affidabile?
Grazie.
 
--
SysAdmin

 
 
 
-- 
 
piergiorgio


 
E' una specie di RAID in rete e se non sbaglio supporta anche più di due nodi.
Io l'ho implementato in un cluster di due nodi.
 
 
Sostanzialmente è un device a blocchi, su cui ci appoggi il filesystem che vuoi.
Lui trasferisce i blocchi di differenza in tempo reale.
Ci sono tre modalità di sincronizzazione, in cui si da priorità o alla velocità o alla certezza che il dato venga trasferito.
E' possibile metterlo in modalità master-master, ma a quel punto sei vincolato con il filesystem.
Scusate se l'ho detta un po' a spanne.
 
--
SysAdmin

 E' possibile metterlo in modalitï¿½ master-master, ma a quel punto sei vincolato con il filesystem.
 
In che senso? Serve un fs particolare? Quale?
 
bye,
 
-- 
 
piergiorgio

 
 
Nel senso che devi formattare il device con filesystem GFS o OCFS2
che personalmente non conosco perchè io lo uso in master slave ed i ruoli sono pilotati dal cluster.
 
--
SysAdmin

 Potrebbe essere un buon suggerimento Unison?
 
Grazie,
da una rapida lettura delle caratteristiche, Unison sembrerebbe quello che 
cerco, dovrï¿½ vedere come si comporta su una VPN a banda molto limitata e con 
file grossi.
 
Ci provo
fulvio
 


 
Facci sapere!
Grazie.
 
--
SysAdmin
 

 Forse meglio usare un sistema di version control 
 
stavo per cliccare "mi piace", ma poi ho letto bene la richiesta dell'OP. 
I sistemi di version control che conosco io non sono ottimizzati per i 
file binari. 
In genere sono ottimizzati per gestire le differenze nei file di codice 
(testo). Con i binari userebbe quantità immani di storage. 
 
 
-- 
Massimiliano Adamo

 (testo). Con i binari userebbe quantità immani di storage. 
 
Si, verissimo, questo era venuto in mente
anche a me.
 
Il problema e` che il DB tiene tutte le
modifiche. Se il file e` "diffable", allora
tiene solo i "diff", altrimenti tutto.
 
Con file binari, tende a crescere...
 
bye,
 
-- 
 
piergiorgio

 aggiunge, modifica, aggiorna, cancella file
 
Il succo della questione � nelle due righe soprastanti. Generi 
inevitabilmente dei conflitti, ne rsync ne unison possono prendersi la 
responsabilit� di risolvere nel modo corretto tale situazione.
 
Devi capire come risolvere i conflitti creati dalla modifica dello 
stesso file. O usi un unico repository (stile dropbox, AFS, DRBD, ecc 
...), ma sei stretto di banda e quindi diventa improponibile. Oppure 
imponi namespace diversi: ad esempio tutti i file del sito A 
inizieranno con FILE_A_xyz.[pdf|jpg|quellochevuoi] mentre nel sito B 
inizieranno con FILE_B_xyz.[pdf|jpg|quellochevuoi].
 
Per la prima soluzione bisognerebbe stimare quanti MB o GB vengono 
modificati al giorno e dimensionare opportunamente la banda.
 
Altre magie non ne conosco.
 
-- 
Gabriele
 

 FILE_B_xyz.[pdf|jpg|quellochevuoi].
 
Grazie per il contributo,
ho raccolto i Vs. suggerimenti, approfondito le richieste dei due gruppi di 
utenti (Milano,Rimini) e per ora ho concluso questo:
- rsync da solo non ï¿½ adatto a fare quello che devo fare
- unison si avvicina a quanto mi serve, ma non puï¿½ decidere da solo, occorre 
un intervento umano
- namespace come suggerisci tu puï¿½ funzionare, ma gli utenti NON lo faranno 
MAI di nominare i loro file con un prefisso identificativo.
Alla fine faccio cosï¿½:
- due directory, una chiamata Milano, una chiamata Rimini
- gli utenti di Milano leggono e scrivono nella directory Milano e la 
directory Rimini possono SOLO leggerla
- gli utenti di Rimini il contrario, scrivono e leggono nella directory 
Rimini, in sola lettura la directory Milano
La sincronizzazione delle due directory la faccio una volta, di notte, con 
unison, ma a queste condizioni potrei usare anche rsync.
Sono consapevole che non ï¿½ la configurazione migliore (per esempio si possono 
generare duplicati, qualche malinteso ecc.) ma mi mette al riparo anche da 
eventuali controversie future: "Chi ha cancellato quei file ?", "Noi di Rimini 
no.", "Aaaah saranno stati quelli di Milano !!!", "Noi di Milano no."
Almeno questo non lo sentirï¿½ dire; gli utenti potranno scornarsi solo 
all'interno del proprio gruppo.
Poi ho creato una directory comune condivisa con Samba, un gruppo accede in 
LAN e l'altro in VPN, in questa entrambi i gruppi ci mettono dentro pochi e 
piccoli file che hanno bisogno di aggiornamenti frequenti nell'arco della 
giornata, in questo caso la concorrenza la gestisce Samba; anche se c'ï¿½ poca 
banda in VPN, il sistema dovrebbe funzionare (vedremo....).
 
Grazie ancora
fulvio
 
 
 
 

 > i due server sono connessi in VPN.
 
Prova a dare una occhiata a csync2 - potrebbe essere il software che ti 
serve
 
Buona serata
 
-- 
Norbert


Interessante software.
 
Purtroppo, parte del problema resta:
 
Most of the trivial synchronization tools just
copy the newer file over the older one. This can
be a very dangerous behavior if the same file has
been changed on more than one host. Csync2 detects
such a situation as a conflict and will not
synchronize the file. Those conflicts then need to
be resolved manually by the cluster administrator.
 
Poi va avanti dicendo che vi sono situaioni in
cui Csync2 riesce a risolvere i conflitti, qualori
vi sia installato il metodo di risoluzione.
 
Comunque carino, puo` tornare utile, grazie della
indicazione.
 
bye,
 
pg
 
-- 
 
piergiorgio