Comment synchroniser mon dossier personnel sur le réseau et Internet?

8

J'utilise mon ordinateur portable avec Ubuntu-desktop pour faire tout mon travail, mais j'ai également un bureau bas de gamme dans mon bureau, juste assis là. J'ai décidé que j'allais installer Ubuntu-server dessus et l'utiliser pour refléter l'intégralité de mon dossier de départ pour ordinateur portable, pour faciliter les choses lorsque je décide de formater le disque dur de mon ordinateur portable.

Chaque fois que je suis au travail, les deux machines sont connectées à un réseau et communiquent facilement (et à grande vitesse) via ssh. Quand je ne suis pas au travail, le bureau est toujours accessible via ssh. Idéalement, la synchronisation aurait lieu automatiquement en arrière-plan, chaque fois que je change quelque chose. Cela ne doit être que dans un sens: les modifications que je fais sur l'ordinateur portable doivent être synchronisées avec le serveur, mais l'inverse n'est pas nécessaire.

Je sais qu'il existe des logiciels pour cela, ma question est: quel logiciel puis-je utiliser pour atteindre les objectifs ci-dessus et profiter pleinement des vitesses du réseau local lorsque je suis au travail? Comme je vais parfois traiter de gros fichiers, le processus de synchronisation doit se rendre compte que les deux ordinateurs partagent un réseau local, puis en tirer parti (au lieu de toujours se synchroniser via Internet).

Juste pour être clair, la synchronisation sur le réseau est en fait plus importante pour moi ici que la synchronisation sur Internet. Idéalement, le logiciel vérifierait si le premier est disponible et, sinon, essaierait le second; mais si ce n'est pas possible, le premier cas est ma priorité.

J'espère que ce n'est pas trop long. Merci d'avance.

Malabarba
la source

Réponses:

11

Si vous ne pouvez vous connecter à votre serveur de bureau que via SSH, votre meilleur choix est d'utiliser rsync : il peut utiliser SSH comme protocole de transport et utilise un algorithme intelligent pour accélérer le transfert de gros fichiers, en envoyant uniquement les blocs modifiés.

Comme vous n'avez besoin que d'une synchronisation unidirectionnelle, configurez simplement l'authentification SSH sans mot de passe de votre ordinateur portable sur le serveur de bureau, puis vous pouvez commencer avec une commande aussi simple que:

rsync -e ssh -a $HOME/ myuser@officeserv:

ajout --includeet --excludeoptions pour affiner la liste des fichiers / répertoires que vous souhaitez synchroniser. Par exemple, le transfert des paramètres du programme ("fichiers dot") peut être risqué si les deux ordinateurs n'exécutent pas le même système d'exploitation (même version). Ma suggestion est de commencer par exclure tous les "fichiers dot" (donc, utilisez --exclude="$HOME/.[a-z]*") puis d'ajouter sélectivement les répertoires de configuration des programmes qui peuvent être partagés en toute sécurité (cela doit être vu programme par programme). En outre, le cache du navigateur Web et $HOME/.cachepeut toujours être exclu. Voir la section "RÈGLES DE FILTRE" dans la rsyncpage de manuel pour une discussion détaillée de la syntaxe des règles d'inclusion / exclusion.

Cependant, rsyncn'a pas de mode "opérations continues", vous devrez donc l'exécuter périodiquement à partir de votre crontab .

Riccardo Murri
la source
Ça semble bon. Je le testerai dès que j'aurai installé le serveur. Une question: le protocole SSH utilise-t-il automatiquement la connexion la plus courte au serveur? Je veux dire: se connectera-t-il via le réseau local si le client et le serveur sont dans le réseau du bureau, ou tentera-t-il toujours des connexions Internet?
Malabarba du
Soit dit en passant, vous avez raison sur le cache du navigateur. Une autre suggestion de dossiers à exclure? Mon objectif est de synchroniser tous les fichiers personnels, profils, paramètres et fichiers de configuration.
Malabarba du
1
@Bruce Connor: SSH se connectera à un hôte distant en utilisant l'algorithme de routage IP habituel. Texte de réponse mis à jour avec suggestion d'une liste d'exclusion initiale.
Riccardo Murri
Merci. Pour éviter les conflits, je peux synchroniser le dossier de départ de mon ordinateur portable avec un sous-dossier du serveur (et non le dossier de départ réel du serveur).
Malabarba du
@riccardomurri par «authentification SSH sans mot de passe», voulez-vous dire basé sur un fichier clé? ou autre chose?
david.libremone
3

Je suggérerais d'utiliser rdiff-backup sur rsync. C'est à peu près juste rsync ++.

contrairement à rsync, qui ne fait qu’un miroir 1-1 qui transfère les différences, rsync a un mécanisme d’historique. Donc, si vous avez foiré et supprimé quelque chose d'important, vous pouvez revenir à il y a une semaine et le récupérer.

Sur le "serveur" ubuntu, il vous suffit de faire tourner ssh pour apt-get install rdiff-backup.

sur le client. Je l'exécuterais manuellement .. ou via un crontab.

#!/bin/bash

  #backup.sh

  rdiff-backup -v5 --exclude path-to-annoyingfile  /home/user/ hostname::/media/data/snapshots/laptop 
  ## this will cleanup any backups older then 2weeks.  Adjust this as needed.
  rdiff-backup --remove-older-than  2W --force  hostname::/media/data/snapshots/laptop


  #!/bin/bash
  ##Restore.
  rdiff-backup -v5 --restore-as-of now --force user@hostname::/media/data/snapshots/laptop  /home/user

Si vous ouvrez votre port 22 à Internet .. vous devriez être en mesure d'exécuter le même script dans les deux cas .. faites-le résoudre votre nom d'hôte localement à votre IP locale.

c'est à dire. backupSrv.penguins.org se résoudrait en IP externe de. 2.3.4.5 mais à l'intérieur de votre lan: à 192.168.1.253

csgeek
la source
Je pense que votre script manque quelques sauts de ligne.
Malabarba du
2

Il n'y a pas de solution complète et préemballée à votre problème à ma connaissance. Vous devez probablement écrire vous-même un petit script pour cela.

La synchronisation elle-même pourrait être effectuée par rsync, comme déjà expliqué par Riccardo Murri. Rsync transfère uniquement les parties modifiées des fichiers, il est donc parfait pour cette tâche.

Vous pouvez utiliser le NetworkManagerDispatcher pour exécuter des scripts lors de la connexion / déconnexion d'une interface réseau. Vous pouvez donc écrire un script qui vérifie si vous êtes sur le bon réseau, puis appelle rsync. De cette façon, vos données seraient automatiquement synchronisées lorsque vous vous connectez au réseau de votre entreprise.

Pour synchroniser périodiquement vos données, vous pouvez utiliser cron, comme déjà mentionné.

Vous devez également prendre en compte la sécurité lorsque vous utilisez rsync via ssh. Pour synchroniser sans intervention de l'utilisateur, vous aurez besoin d'un fichier de clés sans mot de passe. Quiconque possède ce fichier de clés peut accéder au serveur auquel il appartient. Je recommanderais fortement de crypter votre dossier personnel pour protéger les données sur le portable et sur le serveur.

Scientifique fou
la source
1

DropBox | DropBox @ SuperUser http://www.dropbox.com/help/137

DropBox devrait être bon dans votre cas, fonctionne sur Linux, mac, windows, configuration et gestion faciles.

Télécharger DropBox

/superuser/147315/dropbox-to-sync-nix-home-folders

http://wiki.dropbox.com/TipsAndTricks/SyncOtherFolders

Lisez attentivement - il prend en charge la synchronisation via des liens symboliques et s'il y a certains documents, graphiques, feuilles de calcul que vous devez synchroniser - vous pouvez toujours en conserver une copie dans dropbox ou les enregistrer de manière permanente dans l'emplacement de dropbox pour éviter les tracas.

rihatum
la source
Je ne pense pas que vous puissiez définir votre Dropbox comme dossier d'accueil (du moins pas encore).
Matthew
superuser.com/questions/147315/dropbox-to-sync-nix-home-folders wiki.dropbox.com/TipsAndTricks/SyncOtherFolders Lisez attentivement - il prend en charge la synchronisation via des liens symboliques et s'il existe certains documents, graphiques, feuilles de calcul que vous devez synchroniser - vous pouvez toujours en conserver une copie dans la boîte de dépôt ou les enregistrer de manière permanente à l'emplacement de la boîte de dépôt pour éviter les tracas.
rihatum
1
Merci, mais j'utilise déjà Dropbox sur toutes les plateformes. Ce que je recherche ici est quelque chose qui me permet de synchroniser de nombreux Go de fichiers sans frais et en profitant des réseaux locaux.
Malabarba du
1

Essayez Sparkleshare: http://sparkleshare.org/

Il existe un client dans le référentiel Ubuntu et il contient des instructions sur la configuration d'un serveur sur leur site Web.

user60876
la source
ressemble à un excellent programme - la solution la moins hacky; la version 1.0 est sortie le mois dernier.
Abe
0

La meilleure solution pour 2015 devrait être Seafile: https://www.seafile.com/en/download/

Les développeurs de Sparkleshare disent eux-mêmes que leur outil est bon pour de nombreux petits fichiers, en particulier les fichiers texte, mais pas si bon pour les fichiers plus gros et binaires.

Et en termes de performances, il surpasse à la fois Sparkleshare et Owncloud.

De plus, il est beaucoup moins gourmand en ressources que OwnCloud - donc une instance peut fonctionner sur une banane ou une framboise sans aucun problème en tant qu'ordinateur fonctionnant 24h / 24 et 7j / 7. (Je recommanderais cependant un Banana Pi, en raison du réseau Gigabit et de l'interface SATA, c'était un bon choix pour un serveur de fichiers au moins pour moi.)

Je synchronise mes dossiers personnels avec trois ordinateurs. J'exclus les dotfiles, ils sont gérés via un dépôt git et une certaine logique parce que - comme Ricardo l'a mentionné - il y a des problèmes dans le partage de dotfiles et d'autres configurations sur différents ordinateurs, même lorsque c'est le même système d'exploitation et la même version. Pensez par exemple à moniteurs.xml, ou à une disposition différente pour un IDE sur votre ordinateur portable et votre bureau multi-écrans - ou un programme ouvert sur les deux ordinateurs.

En plus de la synchronisation, je sauvegarde ces données - via borgbackup. C'est un nouveau programme de sauvegarde très agréable, qui se déduplique, est très rapide après la sauvegarde initiale et possède de nombreuses fonctionnalités qui manquent à de nombreux outils.

C'est la configuration parfaite pour moi.

mpathy
la source