Se usi più computer, come sincronizzi tutto? [chiuso]


31

Adesso ho 4 o 5 computer e ho bisogno di un sistema migliore per sincronizzare tutto. Uso git e github molto per sincronizzare i miei file per la programmazione di progetti, ma poi ci sono database, file .bash_profile, script bash, ecc. A volte, invece di sincronizzare i file, faccio semplicemente un ssh da un computer all'altro. Ma questo sta diventando abbastanza caotico. Alcuni dei miei computer sono Ubuntu e altri sono OS X.

Qualche suggerimento per la gestione di un flusso di lavoro che si estende su più personal computer?


1
Forse dovrei provare le cartelle condivise in rete
dan

1
@rwong Ho l'impressione che @dan stia cercando quelle "solite risposte" in primo luogo. Prendi in considerazione l'idea di pubblicare una risposta che descriva come l'utilizzo di rsync e delle cartelle condivise può aiutarlo.
Adam Lear

1
Molto attentamente.
greyfade,

4
Questo non è proprio specifico per la programmazione. Forse migrare verso SU sarebbe un posto migliore per questo?
Walter,

1
@FarmBoy - dipenderebbe dal tipo di DB dato che molti di loro sono in realtà solo file ... Vedo ancora questo come un problema di sincronizzazione dei file piuttosto che di programmazione. E penso che ci sarebbe molta più varietà di risposte su SU. Solo i miei 2 centesimi.
Walter,

Risposte:


15

Uso una combinazione di Git per i repository git e Unison per tutto il resto. Ho diversi profili unisono in modo da poter sincronizzare cose specifiche e uno che sincronizza tutto. Ho anche uno script bash che attraversa e sincronizza tutte le cose sincronizzate all'unisono, quindi passa e aggiorna tutti i miei repository git.

L'unisono è la cosa migliore nella mia mente quando si tratta di sincronizzare i computer.


1
Come si sincronizzano i database? Funziona con le modifiche DDL e DML?
Eric Wilson

Al momento non sto lavorando con alcuna cosa relativa a SQL / database, quindi non posso rispondere a questa domanda, poiché non si applica a me. Ho perso quella parte della domanda originale e stavo rispondendo a come sincronizzare tutte le informazioni sul mio codice e profilo.
sp0rus,

Si verificano conflitti di versione quando si utilizza Unison? Come li minimizzi?
dan

Sincronizzo sempre manualmente prima di modificare qualsiasi cosa, in modo da modificare la versione più aggiornata del file. Ho anche un lavoro cron impostato per ogni notte per sincronizzare i computer. Non ho avuto problemi con i conflitti di versione attenendosi a questo sistema. Quando ho dovuto deviare e si verifica un conflitto, è stato qualcosa che sono stato in grado di scegliere con quale volevo sostituire gli altri.
sp0rus,

15

Dropbox

Per sincronizzare i file, è facile come lavorarci su una cartella che DropBox conosce. Il video sulla pagina principale contiene la maggior parte della descrizione, motivo per cui non ho commentato le funzionalità. Basta modificare un file con versione e DropBox lo caricherà automaticamente, quindi tutte le altre macchine con DropBox scaricheranno automaticamente l'ultima versione.

Per cose come i database, i collegamenti simbolici potrebbero essere la strada da percorrere. Questo thread sui forum DropBox fornisce un piccolo spaccato su come si potrebbe sincronizzare un database MySQL. In alternativa, è possibile eseguire la route di script "export / import" oppure, se effettivamente si utilizza MySQL, è possibile dare un'occhiata a Replication e come implementarlo (questa è una funzionalità di MySQL che non utilizza DropBox).


Non vedo come useresti Dropbox per sincronizzare i database.
Eric Wilson,

È possibile pianificare un dump / ripristino del database regolare in / da una directory dropbox.
badgerr,

6
@badgerr Prendi in considerazione l'idea di espandere la tua risposta per includere il modo in cui Dropbox può essere utilizzato nei vari scenari menzionati dall'OP.
Adam Lear

È brutto. Preferirei di gran lunga usare uno script-runner come DbMaintain.
Eric Wilson,

1
-1 per il motivo che menziona Anna. Espandi la tua risposta e il voto verrà annullato ;-)
dal

7
  • Dropbox
  • Github
  • Firefox Sync per le impostazioni di segnalibri / cronologia / Firefox

1
+1 per la risposta diretta e per il dropbox in cima. Indipendentemente dai loro recenti problemi di pubbliche relazioni con la comunità open source, Dropbox è inestimabile per me.
Falmarri,

3

Puoi usare github per tutto il tuo codice, ovviamente, inclusi i file .bash_profile e gli script bash.

Il server CI Hudson / Jenkins è ottimo per la gestione di più ambienti. Utilizzato insieme a DbMaintain, può anche sincronizzare i database.

Il mio team utilizza questa combinazione per sincronizzare quattro stazioni di accoppiamento, una varietà di laptop e ambienti CI, TEST e QA (con server e loro copie del DB).

Ciò coinvolge macchine Windows, laptop Mac e server Linux, quindi è abbastanza flessibile.


2

Tengo i miei dotfile in git, con rami per configurazioni specifiche della macchina. Mi consente di configurare rapidamente una nuova macchina e posso condividere gli script e mantenerli all'ultima versione.


1

Forse devi fare un passo indietro e chiederti perché hai bisogno di così tanti computer. È come se qualcuno chiedesse come mantenere tutte le sue cose uguali nelle 5 auto che possiede.

Ti suggerirei di chiederti cosa fa ogni macchina che la tua macchina principale non fa, e di farcela.

Hai considerato un buon laptop?

Se questi sono tutti in casa, è possibile impostare un server e mantenere tutte le cose lì. Quindi hai solo una macchina con i dati per il backup.

Se sono macchine remote, prendi in considerazione l'idea di ottenere un vps linux e di archiviare lì le tue cose remote. Non utilizzare servizi online gratuiti come github, dropbox, ecc., Poiché possono scomparire nel momento sbagliato.

Non utilizzare AWS per archiviare le tue cose. a $ 0,1 / mese / GB, ovvero $ 100 / mese / TB o $ 1200 / anno / TB. Per quei soldi, puoi comprare circa 15 dischi rigidi Western Digital da 1 TB.

Se gestisci un'azienda e ne guadagni, usa il miglior servizio possibile, ma ad essere sincero, è difficile battere i dischi rigidi per spostare molti dati. Anche le unità micro USB da 32 GB hanno le dimensioni di un'unghia e puoi spostare molti dati in giro ...

C'è il cloud, il cloud privato. Forse dovrebbe esserci il Personal Cloud ...


Grazie per i suggerimenti Ho 5 computer, ma ne uso solo 3 e ne ho bisogno. 1 server Ubuntu a casa, 1 laptop Thinkpad Ubuntu (il cavallo di battaglia) e 1 Macbook Pro per lo sviluppo di iOS
dan

0

Git, migrato da Subversion, a sua volta migrato da CVS. fgit (disclaimer: da me) per pull push, statuse gc.


0

Hai mai pensato di creare una sorta di infrastruttura cloud lì? Sembra l'unico modo per sottrarre da quale workstation ha il servizio / file / cosa.

Ecco un link a Ubuntu Cloud .


0

Ora uso Wuala in sostituzione di Dropbox. Un problema è la mancanza di monitoraggio delle cartelle su Linux. Fondamentalmente scansiona tutti i file ogni minuto. La prossima versione dovrebbe risolverlo in qualche modo così dicono.

La sincronizzazione in tempo reale su Linux è problematica se si hanno decine di migliaia di cartelle (ad es. Repository git) a causa della modalità di implementazione di inotify. Per ogni singola cartella deve esserci un "orologio" - vedi ad esempio https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.