# Sync fra tre cartelle in tre server

**URL:** <https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130>\
**Category:** IT\
**Created:** [October 31, 2012, 9:05am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130 "2012-10-31T09:05:18Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [October 31, 2012, 9:05am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/1 "2012-10-31T09:05:18Z")

</div>

Ciao, ho migrato un sito da un server web ed un server db a tre server.  
Ogni server ha apache con passenger e MySql con replicazione. I file li  
ho migrati S3 (uso carrierwave). Il problema e`l'editor degli articoli usa una directory locale. Ho provato a montare un bucket da S3 ed era lentissimo. Ho installato GlusterFS e sembrava funzionare, pero` i  
server hanno 2GB e non ce la fanno, poi GlusterFS mi disistalla delle  
librerie per mysql e fa confusione. In poche parole non saprei come  
fare. Di  
solito rsync viene utilizzato per backup, one-way, ho trovato unison ma  
i server web son tre non due.

Forse potrei usare solamente due server per il web ed usare unison. I  
tre server mysql dovrei tenerli perche`uso galera replication ed ha bisogno di tre server in caso che un nodo vada giu`.

Idee? Conoscete qualcosa per tenere i file in sync? La cartella  
dell’editor puo` ricevere uno o due file al giorno, veramente pochi,  
forse rsync potrebbe andar bene.

Non voglio aggiungere altri due VPS per condividere i file con  
GlusterFS, mi sembra esagerato ed il cliente probabilmente non sarebbe  
contento.

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 9:36am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/2 "2012-10-31T09:36:17Z")

</div>

Scusa Fabrizio ho fatto confusione, ho cancellato il post da quel  
thread. ti  
rispondo qui. Il modo piu`semplice era di usare S3 visto che tutti gli altri file con Ruby sono stati cambiati per usare S3. Mi servirebbe semplicemente di tenere in sync le tre cartelle. Per la scrittura i requisiti son bassi, per la lettura ci sono molti file. S3 e` troppo  
lento montato come FS locale, GlusterFS mi crea problemi. Ceph non ha i  
pacchetti per Lucid (Ubuntu 10.04). E` un sito in produzione e non posso  
compilare e sperimentare.

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 9:42am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/3 "2012-10-31T09:42:01Z")

</div>

Il 31/10/12 09:05, Riccardo T. ha scritto:

> Forse potrei usare solamente due server per il web ed usare unison. I  
> tre server mysql dovrei tenerli perche` uso galera replication ed ha bisogno di tre server in caso che un nodo vada giu`.
> 
> Idee? Conoscete qualcosa per tenere i file in sync? La cartella  
> dell’editor puo` ricevere uno o due file al giorno, veramente pochi,  
> forse rsync potrebbe andar bene.

Sparkleshare?

> **[SparkleShare - Self hosted, instant, secure file sync](https://www.sparkleshare.org/)**

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 10:10am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/4 "2012-10-31T10:10:21Z")

</div>

Grazie Tommaso. Devo risolvere il problema in giornata e quello script  
potrebbe andare bene. Non ho un server GIT e non so se potrei superare  
le quote di github o bitbucket

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 10:26am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/5 "2012-10-31T10:26:26Z")

</div>

Visto che i file cambiano poco, qual’ il problema di usare Rsync?

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 10:19am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/6 "2012-10-31T10:19:25Z")

</div>

Il 31/10/12 10:10, Riccardo T. ha scritto:

> Grazie Tommaso. Devo risolvere il problema in giornata e quello script  
> potrebbe andare bene. Non ho un server GIT e non so se potrei superare  
> le quote di github o bitbucket

Il “server git” pu essere anche un semplice accesso ssh comune ad una  
macchina, tempo di setup 0 🙂  
Il problema di sparkleshare l’ho riscontrato su molti file che cambiane  
spesso, che per la natura di git vanno ad occupare un sacco di spazio,  
ma nel tuo caso secondo me funziona bene.

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 10:33am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/7 "2012-10-31T10:33:27Z")

</div>

Se vuoi puoi farti il tuo bare git repository su una macchina. Poi con  
push & pull sincronizzi …

SUL “SERVER”:

ssh removed\_email\_address@domain.invalid

mkdir my\_project.git

cd my\_project.git

git init --bare

exit

SUI CLIENT ti ci vuole lo scambio di chiavi:

ssh-keygen -t rsa

etc .

Se metti le passphrase il problema e’ che ti chiedera’ la passphrase  
ogni volta che ti colleghi. Puoi risolvere con un ssh agent

qui trovi una mia implementazione per bash (e’ al blocco 4)

> <https://github.com/tucano/tucano-configs/blob/master/Unix/bashrc.clustershell>

Ciao!

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 10:44am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/8 "2012-10-31T10:44:09Z")

</div>

Fabrizio R. wrote in post #1082164:

> Visto che i file cambiano poco, qual’ il problema di usare Rsync?

Ho il load balancer di Linode ed sto usando le sticky sessions, quindi  
un utente che carica un file, dovrebbe restare sullo stesso server  
quando il file e` caricato e l'articolo e` stato salvato, pero` una  
volta ha visto l’articolo senza immagine. Da qui ho la paranoia che  
capiti di nuovo. Ho visto che molti setup eseguono rsync via cron ogni  
30/60 secondi, ma vorrei che i file siano in sync dopo pochi secondi.

Potrei anche usare guard-process per monitore i cambiamenti nella  
cartella e far partire rsync on-demand.

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 10:57am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/9 "2012-10-31T10:57:27Z")

</div>

Infatti pensavo a guard per monitorare i cambiamenti e far partire  
rsync.

Non conosco il load balancer di linode ma se le sticky sessions  
funzionano bene quello che hai descritto non dovrebbe accadere.  
Indagherei su quel fronte. Altrimenti rischi di complicare inutilmente  
il tutto.

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 10:59am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/10 "2012-10-31T10:59:12Z")

</div>

2012/10/31 Riccardo T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Fabrizio R. wrote in post #1082164:
> 
> > Visto che i file cambiano poco, qual’ il problema di usare Rsync?
> 
> Ho il load balancer di Linode ed sto usando le sticky sessions, quindi  
> un utente che carica un file, dovrebbe restare sullo stesso server  
> quando il file e` caricato e l'articolo e` stato salvato, pero` una  
> volta ha visto l’articolo senza immagine.

mi se che non ho capito il setup: hai detto che stai usando  
carrierwave con S3, quindi le immagini dovrebbero andare su S3 ed  
essere servite direttamente da li … (stai usando un upload diretto o  
asincrono?)  
Oppure i file creati dall’editor sul webserver sono di altro genere?

Luca

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 10:59am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/11 "2012-10-31T10:59:48Z")

</div>

Il 31 ottobre 2012 10:44, Riccardo T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:

> Potrei anche usare guard-process per monitore i cambiamenti nella  
> cartella e far partire rsync on-demand.

Ciao,  
ha la possibilit di usare inotify  
[Home · inotify-tools/inotify-tools Wiki · GitHub](https://github.com/rvoicilas/inotify-tools/wiki) ?

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 11:48am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/12 "2012-10-31T11:48:21Z")

</div>

2012/10/31 Riccardo T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Idealmente FCKEditor dovrebbe essere configurato ad usare S3

oppure per usare carrierwave (questo ti potrebbe aiutare:  
[GitHub - galetahub/ckeditor: Ckeditor 4.x integration gem for rails · GitHub](https://github.com/galetahub/ckeditor) )

Luca

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 11:02am UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/13 "2012-10-31T11:02:37Z")

</div>

Ho aggiornato gli uploader per usare S3 (dopo aver copiato i file dal FS  
locale a S3). FCKEditor usa una sua cartella su file system locale, mi  
son reso conto solamente che usavano anche le immagini caricandole  
dall’editor. Idealmente FCKEditor dovrebbe essere configurato ad usare  
S3, ma non credo sia possibile.

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 12:22pm UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/14 "2012-10-31T12:22:32Z")

</div>

Luca M. wrote in post #1082188:

> 2012/10/31 Riccardo T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
> 
> > Idealmente FCKEditor dovrebbe essere configurato ad usare S3
> 
> oppure per usare carrierwave (questo ti potrebbe aiutare:  
> [GitHub - galetahub/ckeditor: Ckeditor 4.x integration gem for rails · GitHub](https://github.com/galetahub/ckeditor) )
> 
> Luca

Sarebbe quello che il creatore del progetto doveva utilizzare, ha messo  
l’editor in molti posti e devo trovare un soluzione al volo. Quella gem  
sarebbe ottima per un futuro aggiornamento del codice.

---

<div class="post-metadata">

**Author:** ![arigo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@arigo](https://www.ruby-forum.com/u/arigo)\
**Post date:** [October 31, 2012, 4:24pm UTC](https://www.ruby-forum.com/t/sync-fra-tre-cartelle-in-tre-server/224130/15 "2012-10-31T16:24:48Z")

</div>

Alla fine ho usato la gem directory\_watcher con uno script che ad ogni  
evento sulla cartella attiva rsync. Mi sembra che funziona abbastanza  
bene.

Grazie delle tante idee.
