web-dev-qa-db-fra.com

Synchronisation de fichier de type Dropbox sans serveur central

Je cherche un moyen de synchroniser les lecteurs secondaires sur mes deux macs sur Internet. J'ai une connectivité VPN cohérente entre les deux Mac, et je peux y accéder comme si elles sont assises à côté de l'autre.

Je cherche un moyen de mettre en œuvre une expérience de type Dropbox où si je modifie un fichier sur un Mac, le fichier serait poussé à l'autre Mac (et inversement). J'ai également besoin de la capacité d'accélérer la bande passante (notre petit tuyau de téléchargement de 1 mégabit ne sera donc pas surchargé). Aucune suggestion?

Oh, et utiliser Dropbox est une sorte de question de la question en ce moment puisque mon lecteur est de 500 Go. Merci!

22
muncherelli

Vérifiez Sync BitTorrent . Il a la fonctionnalité de synchronisation comme Dropbox, mais sans le nuage.

30
Oskar Persson

Si vous voulez aller hardcore, vous pouvez utiliser rsync Commande Nativement dans OSX, comme le personnel de Nix.

Avant tout, vous devez avoir la permission d'accéder à l'hôte distant par SSH. OpenSSH Server est préinstallé sur Mac OSX et vous n'avez pas besoin d'installer un package supplémentaire. Il suffit de faire des paramètres système. Pour activer le serveur OpenSSH sur Mac OS X, open Préférences système et cliquez pour partager. Etc., cochez la case de connexion à distance pour activer ssh, puis sélectionnez le bouton radio marqué Tous les utilisateurs à partir du Accès pour section.

Vous pouvez maintenant accéder à l'hôte distant par SSH.

Maintenant, vous devez créer une clé d'accès publique pour un accès sans mot de passe de la machine d'invité locale à une hôte distante sur SSH. Pour cela, vous devez obtenir votre main sale un peu. :)

Tout d'abord, déterminez si vous avez déjà des clés d'authentification. Dans le terminal , exécutez:

Sudo ls -la /var/root/.ssh

Si vous voyez "id_dsa" et id_dsa.pub , vous pouvez sauter le reste de cette section.

Sur la machine client, exécutez ce qui suit dans le terminal:

Sudo ssh-keygen -t dsa -f /private/var/root/.ssh/id_dsa -C "comment about this key"

Après avoir créé une clé d'accès dans la machine d'invité locale, vous devez copier la clé publique de l'invité dans le fichier Authorize_Keys de l'hôte. Vous pouvez le faire avec une commande de terminal simple qui appendez la clé publique à la liste des clés autorisées:

Sudo cat /private/var/root/.ssh/id_dsa.pub | ssh root@remote_Host_address 'cat - >> ~/.ssh/authorized_keys'

La commande ci-dessous effectuera une sauvegarde incrémentielle de votre système de fichiers racine dans la machine d'invité locale sur votre hôte distant:

/usr/local/bin/rsync -aNHAXx --protect-args --fileflags --force-change --rsync-path="/usr/local/bin/rsync" / root@remote_Host_address:/Volumes/Backup/GuestMachine

Vous pouvez modifier les paramètres de RSYNC pour les comportements de synchronisation des modifications. Si vous ajoutez cette commande dans crontab , la synchronisation peut être exécutée dans n'importe quel moment des cycles. Par exemple:

Sudo crontab -e

ajoutez la ligne ci-dessous pour crontab:

*/30 * * * * /usr/local/bin/rsync -aNHAXx --protect-args --fileflags --force-change --rsync-path="/usr/local/bin/rsync" / root@remote_Host_address:/Volumes/Backup/GuestMachine

Cela sera exécuté la synchronisation dans toutes les demi-heures.

Voici l'échantillon Python script:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Cron automated synchronization script.

Desc: Synchronize remote folder into local machine. Duplicate processes 
      are disallowed until running process finished.

Usage:
    :: Change required variables as _user, _password, _domain etc.
    :: Edit crontab 
    # crontab -e

    :: Append line below.
    */30 * * * * python synchronizator.py 2>&1 &

Author: Sencer HAMARAT (RecNes)
E-Mail: [email protected]
"""

import shlex
from subprocess import Popen, PIPE
import logging as log
import sys

__author__ = "Sencer HAMARAT"

_user = 'username'
_password = 'password'
_domain = 'example.com'

_expectation = "Enter passphrase for key \'/home/%s/.ssh/id_rsa\':" % _user
_rsync = '/usr/bin/rsync --partial --progress -avvz -e'
_pub_key = '/home/%s/.ssh/id_rsa.pub' % _user
_ssh = '/usr/bin/ssh -i %s' % _pub_key
_remoteDir = '/home/%s/backup/' % _user
_localDir = '/home/%s/backup/' % _user
_command = '%s %s %s@%s:%s %s' % (_rsync, _ssh, _user, _domain, _remoteDir, _localDir)
run_command = shlex.split(_command)

_logFile = "logfile.log"
_logFormat = "%(asctime)s %(levelname)s %(name)s %(process)d %(threadName)s %(module)s:%(lineno)d %(funcName)s() " \
             "%(message)s\n"
log.basicConfig(filename=_logFile, level=log.DEBUG, format=_logFormat)

log.debug(u'Command will run: %s' % _command)

try:
    running_command = Popen(run_command, stdin=PIPE, stdout=PIPE, stderr=PIPE)
    if running_command.poll():
        log.debug(repr(running_command.poll()))
        sys.exit()
    if _expectation in running_command.communicate():
        running_command.communicate(_password)
    print running_command.communicate()
except Exception as e:
    log.debug(repr(e))
finally:
    sys.exit()
16
Sencer H.

OwnCloud est une solution possible si vous souhaitez un accès Web.

Vous aurez besoin de votre propre serveur pour héberger propriétaire, mais c'est plus une solution basée sur le serveur où vos 2 clients peuvent accéder à ce dont ils ont besoin à volonté, mais il n'y aura que 1 copie du fichier en question, qui sera située sur le Serveur de propriétaire.

8
Lawrence

J'ai récemment trébuché sur la synchronisation. Beaucoup de foies cool.

http://syncing.net/

4
user5522

Si Windows, il y a un outil Syncoti qui le fait en trois étapes. Si Mac, il s'agit de Chronsync outil ou Tri-Backup Outil

2
Ruslan Gerasimov

J'ai eu bonne chance avec goodsync avec deux PC sur le même réseau local, mais je parie que cela fonctionnerait toujours bien dans votre situation.

Voici leur description de produit:

  • GoodSync syncs des fichiers entre votre ordinateur, vos appareils mobiles, FTP, SFTP, Amazon S3, Google Drive, SkyDrive, WebDav, Azure.
  • GoodSync sauvegardez des fichiers sur des lecteurs portables, des appareils mobiles et des FTP, S3, GDOC, SkyDrive, DAV ou un autre ordinateur.
  • Direct P2P Sync: GoodSync Connect Syncs Fichiers directement entre vos ordinateurs, sans la lenteur introduite par la synchronisation via des serveurs 3ème partie.
  • GoodSync est très rapide et synchronise des fichiers sur votre commande, périodiquement, par un calendrier ou en temps réel (sur le changement de fichier).

Vous avez seulement besoin de bonneync mis en place sur l'un de vos ordinateurs; Il gère la synchronisation bidirectionnelle et le type de synchronisation est personnalisable. De plus, il est fortement recommandé par CNET.

1
Jon Onstott

Une autre solution possible est AEROFS .

AEROFS Synchronise bidirectionnelle des données entre vos périphériques tout en stockant vos données sur vos périphériques - vos données ne sont jamais proches de leurs serveurs. AEROFS maintient une historique de révision pour vos fichiers afin que vous puissiez revenir aux versions précédentes si nécessaire et fournit un outil de résolution des conflits.

AEROFS fonctionne sur Windows, Mac, Linux, IOS et Android, il devrait donc vous avoir couvert.

1
chritohnide

Donc, si vous n'êtes pas opposé au stockage en nuage en principe, il existe deux solutions matérielles pour les entraînements externes:

Space Singe utilise un paradigme intéressant. Il alloue une partie de votre disque à stocker de petites pièces de données d'autres personnes, et stocke également vos données sur de nombreux lecteurs d'autres personnes (cryptés, bien sûr). De cette façon, il y a beaucoup de redondance en cas de catastrophe et vos machines n'ont pas besoin de pouvoir se voir ou même être connectées en même temps.

Transporter de fichiers est un peu plus simple, en ce que les données ne sont jamais synchronisées sur d'autres disques de transport de fichiers que vous avez spécifiquement configuré pour Sync.

Les deux options sont bonnes pour de grandes quantités de données et vous achetez simplement le matériel une fois sans frais d'abonnement.

0
tfinniga