web-dev-qa-db-fra.com

Unison vs Rsync + lecteur monté à distance

Donc, ma situation est que je veux mes fichiers de développement - Ruby & PHP - disponibles pour toutes mes machines lorsque je suis chez moi ou ailleurs. Quand j’avais déjà posé la question ( Monter mon serveur Web en tant que lecteur sous Win7/8 ), on m’a dit d’utiliser un logiciel de contrôle de version, mais je ne souhaite pas télécharger une copie locale et travailler dessus. Je dois ensuite télécharger la nouvelle version et re-télécharger la nouvelle version sur toutes les machines. Il n'y a pas de groupe de développeurs ici juste moi et la plupart de mes problèmes de développement/débogage proviennent de l'écriture de code et du test d'une machine, mais en oubliant de mettre à jour mes autres machines. Ainsi, je veux une copie synchronisée des fichiers sur toutes mes machines.

Je pensais de toute façon utiliser ownCloud sur l’un de mes serveurs Web pour une autre raison et donner à mes machines Win un accès facile aux fichiers. Mes machines Win ont le client de mise à jour ownCloud qui fonctionne comme celui de Google Drive ou de DropBox avec une synchronisation se produisant sur ce qui semble être un minuteur. Le client de mise à jour ownCloud sur mes machines Ubuntu ne voulait pas installer et j'utilise une combinaison de versions de bureau et de serveur. Ainsi, mes machines Ubuntu montent simplement le répertoire ownCloud via davfs2 et utiliseront rsync sur un cron (une fois que cela sera résolu) pour créer une copie locale. Ainsi, mes machines pourront continuer à fonctionner si le serveur avec les fichiers ownCloud se met à fonctionner. vers le bas.

Mais ensuite je suis tombé sur une mention de Unison dont je n'avais jamais entendu parler auparavant. Il semble que Unison est un programme destiné à faire la même chose que différentiel rsync. Ai-je mal compris?

Unison semble être conçu pour la synchronisation de fichiers sur plusieurs serveurs, je n'ai donc pas à m'inquiéter de maintenir le montage du serveur distant en cours d'exécution ou de le rétablir avant d'exécuter une opération rsync différentielle. Cependant, tous les tutoriels que je trouve sur Unison suggèrent que vous deviez ouvrir SSH pour ouvrir une session root. Peut-être que je ne m'inquiète de rien, mais cela semble être une mauvaise idée.

Des questions:

  1. Ai-je raison de dire qu'autoriser une connexion root sur SSH est une mauvaise idée pour des raisons de sécurité?
  2. Y a-t-il des avantages à Unison que j'ai négligés?
  3. Y a-t-il des problèmes avec rsync que j'ai oubliés? Par exemple, effacer ma copie locale si le montage du serveur distant tombe en panne et que le répertoire semble vide.
  4. Existe-t-il des avantages en termes de performances sur Unison par rapport à rsync ou inversement?
  5. Enfin, existe-t-il un moyen de surveiller les montures et de rétablir automatiquement leur mort? Je pourrais utiliser quelque chose d'écrire pour vérifier le contenu spécifique sur le montage, mais cela semble sujet à des problèmes.

Merci

2
Gabe Spradlin

Choisissez Unison si ce que vous voulez est une synchronisation bidirectionnelle, elle convient mieux à ces scénarios. bien que réalisable dans rsync également.

  1. C'est une mauvaise idée, mais un login root n'est pas nécessaire. Vous devez vous connecter à l'autre ordinateur disposant des autorisations nécessaires pour écrire dans les dossiers que vous souhaitez synchroniser. Comme il s’agit de vos données personnelles, vous pouvez utiliser votre connexion habituelle ou créer une connexion spéciale sur toutes les machines spécifiquement pour Unison et lui accorder des autorisations de connexion sur ces dossiers.

  2. La liaison à double sens et la facilité d'installation principalement, mais il s'agit de préférence. Vous pouvez essayer les deux pour voir lequel vous finissez par aimer plus.

  3. Vous pouvez effectuer des vérifications avant d'appeler réellement la synchronisation rsync ou Unison. Par exemple, vous pouvez monter le répertoire de la machine distante via sshfs. Si cela échoue, ne lancez pas la synchronisation. Cela peut faire partie de votre script de synchronisation.

  4. Le principal goulot d'étranglement sera la vitesse du réseau, et Unison peut être plus lent si vous devez synchroniser de grandes quantités de données (~ 100 Go environ). Sinon, les différences sont négligeables, YMMV. La configuration de chacun est différente. Vous devriez également lire cet article dans le cadre de vos considérations.

  5. Si vous utilisez sshfs, essayez l’option de reconnexion .

Cela dit, s’il ne s’agit que de code, c’est toujours une bonne idée d’envisager un système de contrôle de version, comme d’autres l'ont déjà dit. Vous pouvez héberger un serveur git sur une machine chez vous et la synchronisation du code ne prend qu'une minute ou moins avec une seule commande, sans la surcharge liée au maintien des montages, des connexions, des connexions, etc.

2
Mendhak