Synchronisation / sauvegarde unidirectionnelle avec Unison

13

J'utilise l'outil de synchronisation Unison avec mes machines Mac OSX et Ubuntu 9.10 pour sauvegarder ma musique de Mac vers Ubuntu. Le fait est que je veux que mon Mac soit la source et Ubuntu soit la cible pour que la machine Ubuntu soit une copie exacte du dossier Musique sur le Mac à tout moment, mais si je supprime quelque chose d'Ubuntu, cela gagnera '' t être supprimé sur le Mac. J'ai regardé les documents mais ça me dépasse un peu la tête en ce moment.

roflwaffle
la source

Réponses:

1

Un meilleur outil pour le travail pourrait être rsync (vous devrez l'installer sur les deux ordinateurs). Je l'utilise pour synchroniser le dossier de musique de mon ordinateur portable avec un serveur de fichiers domestique, ce qui est assez similaire à votre situation. rsync est spécialisé dans la mise à jour d'une copie miroir.

Une ligne de commande comme celle-ci pourrait être utile (en supposant que vous l'exécutiez à partir d'Ubuntu):

rsync -a --delete-before myMacMachineName:/MyMusic/ /mymusic/

Il est assez facile de changer la ligne ci-dessus si vous voulez l'exécuter à partir de votre Mac et pousser vers l'ordinateur Ubuntu au lieu de tirer.

TheToasterThatCould
la source
33

Utilisation unison -force:

Manuel:

En incluant la préférence -force root, Unison résout toutes les différences (même les changements non conflictuels) en faveur de root. Cela transforme efficacement Unison d'un synchroniseur en un utilitaire de mise en miroir. Vous pouvez également spécifier -force newer(ou -force older) pour forcer Unison à choisir le fichier avec le dernier modtime (antérieur). Dans ce cas, la -timespréférence doit également être activée. Cette préférence est remplacée par la forcepartialpréférence. Cette préférence ne doit être utilisée que si vous êtes sûr de savoir ce que vous faites!

Par exemple (en utilisant le mode socket). Démarrez l'écouteur à l'unisson dans le répertoire que vous souhaitez être le miroir de quelque chose d'autre. Ciblez ce socket dans l'appel client à l'unisson. La force fait que les changements sont tous à sens unique à partir de la racine donnée.

cd /target/mirror/directory
unison -socket 123456 &

Ailleurs ou sur le même hôte:

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/
Rich K.
la source
1
La syntaxe du fichier de profil consiste à spécifier le chemin d'accès au répertoire racine de la variable force. C'est-à-direforce = /home/me/mysynchdir
Daniel
2

Bien que la réponse de TheToasterThatCould "fonctionne", veuillez noter qu'elle ne sauvegardera pas correctement le système de fichiers Mac "Resource Forks"

Alors que la version Mac OSX de rsync est compatible avec les ressources-fork, les versions linux de rsync ne le sont pas (et ne le seront probablement jamais, car la version Apple de rsync est spécifique à OSX et ne présente pas ces fourchettes de ressources à rsync à l'autre extrémité dans une manière qu'une version non OSX de rsync peut gérer). Le résultat de ceci est que les fourches de ressources ne seront pas synchronisées entre les machines Mac et Linux.

Certaines applications Mac utilisent des fourchettes de ressources pour stocker des données liées au fichier particulier. Si vous êtes certain que vos fichiers que vous synchronisez n'ont pas besoin ou n'utilisent pas de fourchettes de ressources, alors il devrait être correct d'utiliser rsync.

Si vous souhaitez synchroniser les fourches de ressources, alors l'unisson sera la meilleure approche car (selon les documents unison), il peut synchroniser les fourches de ressources.

tout naturel
la source
0

FreeFileSync est une application open source capable de mettre en miroir un répertoire. Il peut fonctionner pour une synchronisation unidirectionnelle ou bidirectionnelle ou en mode "contribution". Je peux dire qu'il peut faire le travail du Synctoy de Microsoft. FreeFileSync peut être utilisé librement sous Mac OS X, Linux et Windows.

Teo
la source
-1

Actuellement, unison /home/test/thing2 /home/test/thing2 socket://somehost:123456/ -silent -batchfonctionnera, où -batchindique aucune question du tout

Jin
la source