Si vous utilisez plusieurs ordinateurs, comment synchronisez-vous tout? [fermé]

31

J'ai maintenant 4 ou 5 ordinateurs et j'ai besoin d'un meilleur système pour tout synchroniser. J'utilise beaucoup git et github pour synchroniser mes fichiers pour des projets de programmation, mais il y a ensuite des bases de données, des fichiers .bash_profile, des scripts bash, etc. Parfois, au lieu de synchroniser des fichiers, je passe simplement d'un ordinateur à un autre. Mais cela devient assez chaotique. Certains de mes ordinateurs sont Ubuntu et d'autres sont OS X.

Avez-vous des suggestions pour gérer un flux de travail qui s'étend sur plusieurs ordinateurs personnels?

dan
la source
1
Je devrais peut-être essayer les dossiers partagés en réseau
dan
1
@rwong J'ai l'impression que @dan cherche en premier lieu ces "réponses habituelles". Pensez à publier une réponse qui décrit comment l'utilisation de rsync et des dossiers partagés peut l'aider.
Adam Lear
1
Très soigneusement.
greyfade
4
Ce n'est vraiment pas spécifique à la programmation. Peut-être que migrer vers SU serait un meilleur endroit pour cela?
Walter
1
@FarmBoy - cela dépendrait du type de base de données car beaucoup d'entre eux ne sont vraiment que des fichiers ... Je considère toujours cela comme un problème de synchronisation de fichiers plutôt que de programmation. Et je pense qu'il y aurait beaucoup plus de variété de réponses sur SU. Juste mes 2 cents.
Walter

Réponses:

15

J'utilise une combinaison de Git pour les référentiels git et Unison pour tout le reste. J'ai plusieurs profils à l'unisson afin que je puisse synchroniser des choses spécifiques, et un qui synchronise tout. J'ai également un script bash qui passe et synchronise toutes les choses que synchronise à l'unisson puis passe et met à jour tous mes référentiels git.

L'unisson est la meilleure chose dans mon esprit quand il s'agit de synchroniser les ordinateurs.

sp0rus
la source
1
Comment synchronisez-vous les bases de données? Est-ce que cela fonctionne pour les modifications DDL et DML?
Eric Wilson
Je ne travaille avec aucune chose liée à SQL / base de données pour le moment, donc je ne peux pas répondre à cette question, car elle ne s'applique pas à moi. J'ai raté cette partie de la question d'origine et je répondais à la façon dont je synchronisais toutes mes informations de code et de profil.
sp0rus
Obtenez-vous des conflits de version lorsque vous utilisez Unison? Comment les minimisez-vous?
dan
Je synchronise toujours manuellement avant de changer quoi que ce soit, de sorte que je modifie la version la plus récente du fichier. J'ai également un travail cron défini pour chaque nuit pour synchroniser les ordinateurs. Je n'ai eu aucun problème avec les conflits de version en restant avec ce système. Quand j'ai dû dévier et qu'un conflit survient, c'est quelque chose que j'ai pu choisir avec lequel je voulais remplacer les autres.
sp0rus
15

Dropbox

Pour synchroniser des fichiers, c'est aussi simple que de les travailler dans un dossier que DropBox connaît. La vidéo sur la page principale fait la plupart de la description, c'est pourquoi je n'ai pas commenté les fonctionnalités. Modifiez simplement un fichier versionné et DropBox le téléchargera automatiquement, puis toutes les autres machines avec DropBox téléchargeront automatiquement la dernière version.

Pour des choses comme les bases de données, les liens symboliques pourraient être le chemin à parcourir. Ce fil sur les forums DropBox donne un petit aperçu de la façon de synchroniser une base de données MySQL. Alternativement, vous pouvez faire la route du script "export / import", ou, si vous utilisez MySQL, vous pouvez jeter un œil à la réplication et comment l'implémenter (c'est une fonctionnalité de MySQL qui n'utilise pas DropBox).

badgerr
la source
Je ne vois pas comment vous utiliseriez Dropbox pour synchroniser des bases de données.
Eric Wilson
Vous pouvez planifier une sauvegarde / restauration régulière de la base de données vers / depuis un répertoire de boîte de dépôt.
badgerr
6
@badgerr Envisagez d'élargir votre réponse pour inclure comment Dropbox peut être utilisé dans les différents scénarios mentionnés par l'OP.
Adam Lear
C'est moche. Je préfère de loin utiliser un script-runner comme DbMaintain.
Eric Wilson
1
-1 pour la raison mentionnée par Anna. Développez votre réponse et le vote sera inversé ;-)
fretje
7
  • Dropbox
  • Github
  • Firefox Sync pour les signets / historique / paramètres Firefox
talonx
la source
1
+1 pour une réponse simple et pour que la boîte de dépôt soit en haut. Indépendamment de leurs récents problèmes de relations publiques avec la communauté open source, dropbox est inestimable pour moi.
Falmarri
3

Vous pouvez bien sûr utiliser github pour tout votre code, y compris les fichiers .bash_profile et les scripts bash.

Le serveur Hudson / Jenkins CI est bon pour maintenir plusieurs environnements. Utilisé avec DbMaintain, il peut également synchroniser vos bases de données.

Mon équipe utilise cette combinaison pour synchroniser quatre stations de couplage, une variété d'ordinateurs portables et des environnements CI, TEST et QA (avec des serveurs et leurs propres copies de la base de données).

Cela implique des machines Windows, des ordinateurs portables Mac et des serveurs Linux, donc c'est assez flexible.

Eric Wilson
la source
2

Je garde mes fichiers dot dans git, avec des branches pour les configurations spécifiques à la machine. Cela me permet de configurer rapidement une nouvelle machine et je peux partager des scripts et les garder à la dernière version.

Daenyth
la source
1

Vous devrez peut-être prendre du recul et vous demander pourquoi vous avez besoin d'autant d'ordinateurs. C'est comme si quelqu'un demandait comment garder toutes ses affaires de la même façon dans les 5 voitures qu'il possède.

Je vous suggère de vous demander ce que fait chaque machine que votre machine principale ne fait pas, et de le faire faire.

Avez-vous pensé à un bon ordinateur portable?

Si tout cela se trouve dans votre maison, vous pouvez configurer un serveur et y conserver toutes les informations. Vous n'avez alors qu'une seule machine avec des données à sauvegarder.

S'il s'agit de machines distantes, envisagez d'obtenir un vps linux et stockez-y vos données distantes. N'utilisez aucun service en ligne gratuit comme github, dropbox, etc., car ils peuvent disparaître au mauvais moment.

N'utilisez pas AWS pour stocker vos données. à 0,1 $ / mois / Go, soit 100 $ / mois / To, ou 1200 $ / an / To. Pour cet argent, vous pouvez acheter environ 15 disques durs Western Digital 1 To.

Si vous dirigez une entreprise et que vous en tirez de l'argent, utilisez le meilleur service possible, mais pour être honnête, il est difficile de battre les disques durs pour déplacer beaucoup de données. Même les lecteurs micro USB de 32 Go ont la taille d'un ongle et vous pouvez déplacer beaucoup de données ...

Il y a le Cloud, le Cloud Privé. Peut-être qu'il devrait y avoir le Personal Cloud ...

Christopher Mahan
la source
Merci pour les conseils. J'ai 5 ordinateurs, mais j'en utilise beaucoup seulement 3, et j'ai besoin des trois. 1 serveur Ubuntu à la maison, 1 ordinateur portable Thinkpad Ubuntu (le cheval de bataille), et 1 Macbook Pro pour le développement iOS
dan
0

Git, migré de Subversion, à son tour migré de CVS. fgit (avertissement: par moi) pour pull push, statuset gc.

l0b0
la source
0

Avez-vous envisagé de créer une sorte d'infrastructure de cloud là-bas? On dirait que la seule façon d'abstraire de quel poste de travail a le service / fichier / chose.

Voici un lien vers le Cloud Ubuntu .

guiman
la source
0

J'utilise maintenant Wuala en remplacement de Dropbox. Un problème est le manque de surveillance des dossiers sous Linux. Il analyse essentiellement tous les fichiers toutes les minutes. La prochaine version devrait résoudre ce problème comme ils le disent.

La synchronisation en temps réel sur Linux est problématique si vous avez des dizaines de milliers de dossiers (par exemple les référentiels git) en raison de la façon dont inotify est implémenté. Pour chaque dossier, il doit y avoir une "surveillance" - voir par exemple https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux

ert
la source
Wuala est maintenant mort: en.wikipedia.org/wiki/Wuala
Gwyneth Llewelyn