Salve a tutti, Uso già grsync per sincronizzare le cartelle ma non so come far sì che tre (o più) cartelle siano sempre automaticamente sincronizzate. Qualora io inserisca un file in una delle tre vorrei che in automatico ci fosse anche sulle altre cartelle. Una di queste cartelle è su hdd esterno... non sempre collegato. C'è un modo di ottenere tutto questo?
5 su 7
mostra altri 2 commenti
|
Cerco di proporti una soluzione completa, quasi chiavi in mano. Un tool che permette la sincronizzazione tra due directory (comprese subdirectory) è Unison:
È necessario effettuare una sincronizzazione iniziale (quando le due directory
Successivamente, se viene cambiato uno o più file da una parte o dall'altra, lo stesso comando di prima riporta le due directory allo stesso stato. In che modo?
Unison non ha funzionalità per effettuare la sincronizzazione automatica basata su eventi o temporizzata, quindi bisogna ricorrere a questo scopo a qualche altro tool. La soluzione semplice che propongo è di usare un cron job che gira ogni N minuti, tempo da scegliere secondo le proprie esigenze. Per fare questa cosa ho preparato uno script che ho chiamato
Ricordarsi di rendere eseguibile il file con il comando:
Poi creare o modificare il proprio crontab con il comando
ed aggiungere in coda le seguenti righe
dove in questo esempio è necessario sostituire manualmente USER con il proprio username, MIN con il numero di minuti tra due sincronizzazioni, /PATH1/DIR e /PATH2/DIR con le due directory che si vogliono sincronizzare. Per gestire la sincronizzazione tra due directory di cui una potrebbe non essere presente (dato che potrebbe far riferimento ad un device rimovibile), c'è l'opzione
in tal caso la sincronizzazione avverrà solo se entrambe Volendo sincronizzare tre path, di cui uno rimovibile, nello specifico
Nella propria home c'è una directory nascosta Attenzione: suggerisco di fare delle prove su qualche copia dei dati prima di applicare il sistema ad un caso reale, e senza mettere subito in gioco crontab, infatti lo script Inoltre, ricordarsi di fare la sincronizzazione iniziale tra le due (o tre) directory quando sono uguali. Ciao @Enzotib grazie davvero, specie per aver dedicato del tempo anche alla creazione dello script. @gisnio-sell: prima di accettare la risposta sarebbe opportuno che tu provassi che effettivamente questa soluzione fa al caso tuo. 1
Giusto. Ho fatto un pò diversamente per usare le interfaccie grafiche per comodità... sto usando unison-gtk e per cronetab, gnome-schedule. La sincronizzazione è ottima, sto facendo delle prove sull' automatizzazione.. Per la gestione del conflitto, guardo appena metto in ordine il resto Alla fine ho optato per creare uno script che contiene tutte le singole istruzioni per la sincronizzazione di determinate cartelle, ma con rsync che conosco un po meglio. Di Unison mi sfugge ancora qualcosa ... Grazie mille comunque, specie perchè il fatto di conoscere crontab mi ha aperto un mondo di possibilità. Anche se non è la soluzione che ho seguito,la risposta mi ha dato indicazioni importanti... posso fleggarla :) ? 1
@gisnio-sell: è una tua decisione, se ritieni che sia stata utile puoi accettarla. Credo sia molto utile per chi cerca info per lavorare con Unison. Nello script che ho creato per usare rsync ho messo entrambe le direzioni, da pathA verso pathB e poi viceversa... in realtà poi ho anche creato una terza direzione in un'altra cartella, quindi necessito comunque della soluzione con elenco di comandi. Di Unison non comprendo perchè dia errore se vengono modificati i file in entrambe le cartelle per esempio. Non c'è comunque sempre una path sorgente e una destinataria che poi vengono automaticamente invertite per rendere il processo bidirezionale? @gisnio-sell, no, la logica è: quando faccio una sincronizzazione mi ricordo la stato di ogni file (da qualche parte nella cartella nascosta ~/.unison). Quando rifaccio la sincronizzazione, considero nuovo quello che è stato modificato rispetto a quello che ricordo, se sono stati modificati entrambi non so che fare: era anche spiegato nei quattro punti della mia risposta, dopo la frase "In che modo?". grazie enzotib, è che pur avendo letto quanto hai scritto non capivo in che modo funzionasse la sincronizzazione non sapendo che l'ultima "sincronia" venisse anch'essa salvata nella cartella .unison come i log. Sapendo questo ora ho le idee più chiare su come funziona e capisco maggiormente il motivo del conflitto.
5 su 8
mostra altri 3 commenti
|
Segui questa domanda
Via email:Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui
Via RSS:Basi di markdown
- *corsivo* o __corsivo__
- **grassetto** o __grassetto__
- collegamento:[testo](http://url.com/ "titolo")
- immagine?
- elenco numerato: 1. Foo 2. Bar
- per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
- è supportato anche semplice HTML
Tag:
domanda posta: 23 Sep '14, 23:36
domanda visualizzata: 32,622 volte
ultimo aggiornamento: 29 Sep '14, 10:07
@gisnio-sell: cartello locali, remote, o cosa? Sarebbe il caso che specificassi meglio.
@gisnio-sell: come dice @enzotib sarebbe meglio tu fornissi più dettegli, invece non dici neppure che sistema operativo usi.
Non ho esperienza su grsync ne su rsync, ma so che in certi casi è difficile ottenere tutto automaticamente (soprattutto quando le periferiche non sono sempre collegate), ma ho visto che sia sul sito di grsync, che su quello di rsync (che potresti prendere in considerazione), vengono fornite molte spiegazioni che potrebbero aiutarti a snellire il lavoro.
Se poi i comandi da impostare fossero troppi e ripetitivi, puoi cercare di semplificare con l'uso di alias.
Giusto :) non ci avevo pensato.
Sono cartelle locali, e poi quelle dell' hdd esterno che credo possano essere considerate anch'esse tali quando fosse attaccato.
@gisnio-sell: non mi è chiara la necessità di avere due cartelle locali identiche. In ogni caso per questa esigenza, anziché la sincronizzazione, ti potrebbero tornare utili i link (in particolare gli hard link) oppure i bind mount.
Mi servirebbe in particolare per i file che produco in virtualbox, vorrei fossero copiati in automatico sia sull'altra partizione che uso come archivio, sia sull'hdd esterno in cui c'è il backup dei file
Non sò cosa siano i bind mount
@gisnio-sell: sincronizzazione a 1 via (in un solo verso) o a due vie (bidirezionale)?
Se si può, preferirei bidirezionale ...