Si usa varias computadoras, ¿cómo sincroniza todo? [cerrado]

31

Tengo como 4 o 5 computadoras ahora, y necesito un mejor sistema para sincronizar todo. Utilizo mucho git y github para sincronizar mis archivos para proyectos de programación, pero luego hay bases de datos, archivos .bash_profile, scripts bash, etc. A veces, en lugar de sincronizar archivos, simplemente ingreso de una computadora a otra. Pero esto se está volviendo bastante caótico. Algunas de mis computadoras son Ubuntu y otras son OS X.

¿Alguna sugerencia para administrar un flujo de trabajo que abarque varias computadoras personales?

dan
fuente
1
Tal vez debería probar las carpetas compartidas de red
dan
1
@rwong Tengo la impresión de que @dan está buscando esas "respuestas habituales" en primer lugar. Considere publicar una respuesta que describa cómo usar rsync y las carpetas compartidas pueden ayudarlo.
Adam Lear
1
Muy cuidadosamente.
greyfade
44
Esto realmente no es específico de la programación. ¿Quizás migrar a SU sería un mejor lugar para esto?
Walter
1
@FarmBoy: dependería del tipo de base de datos, ya que muchos de ellos son realmente solo archivos ... Todavía veo esto como un problema de sincronización de archivos en lugar de uno de programación. Y creo que habría mucha más variedad de respuestas en SU. Solo mis 2 centavos.
Walter

Respuestas:

15

Utilizo una combinación de Git para repositorios de git y Unison para todo lo demás. Tengo varios perfiles al unísono para poder sincronizar cosas específicas, y uno que sincroniza todo. También tengo un script de bash que pasa y sincroniza todas las cosas que sincroniza al unísono, luego pasa y actualiza todos mis repositorios git.

Unison es lo mejor en mi mente cuando se trata de sincronizar computadoras.

sp0rus
fuente
1
¿Cómo sincronizas las bases de datos? ¿Funciona esto para los cambios DDL y DML?
Eric Wilson
No estoy trabajando con ninguna cosa relacionada con SQL / base de datos en este momento, por lo que no puedo responder esa pregunta, ya que no se aplica a mí. Me perdí esa parte de la pregunta original y estaba respondiendo cómo sincronizo toda mi información de código y perfil.
sp0rus
¿Obtiene conflictos de versión cuando usa Unison? ¿Cómo los minimizas?
dan
Siempre sincronizo manualmente antes de cambiar cualquier cosa, así que estoy editando la versión más actualizada del archivo. También tengo un trabajo cron configurado para cada noche para sincronizar las computadoras. No he tenido ningún problema con los conflictos de versiones al seguir con este sistema. Cuando tuve que desviarme y ocurrió un conflicto, fue algo que pude elegir con cuál quería reemplazar a los demás.
sp0rus
15

Dropbox

Para sincronizar archivos, es tan fácil como trabajar en ellos dentro de una carpeta que DropBox conoce. El video en la página principal hace la mayor parte de la descripción, razón por la cual no hice comentarios sobre las características. Simplemente modifique un archivo versionado y DropBox lo cargará automáticamente, luego todas las otras máquinas con DropBox descargarán automáticamente la última versión.

Para cosas como bases de datos, los enlaces simbólicos pueden ser el camino a seguir. Este hilo en los foros de DropBox proporciona una pequeña idea de cómo se puede sincronizar una base de datos MySQL. Alternativamente, podría hacer la ruta de script "exportar / importar" o, si realmente está utilizando MySQL, podría echar un vistazo a Replicación y cómo implementarla (esta es una característica de MySQL que no usa DropBox).

tejón
fuente
No veo cómo usarías Dropbox para sincronizar bases de datos.
Eric Wilson
Puede programar un volcado / restauración regular de la base de datos a / desde un directorio de Dropbox.
badgerr
66
@badgerr Considere expandir su respuesta para incluir cómo se puede usar Dropbox en los diversos escenarios que mencionó el OP.
Adam Lear
Eso es feo. Prefiero usar un script-runner como DbMaintain.
Eric Wilson
1
-1 por la razón que Anna menciona. Expande tu respuesta y el voto se revertirá ;-)
fretje
7
  • Dropbox
  • Github
  • Firefox Sync para marcadores / historial / configuración de Firefox
talonx
fuente
1
+1 para una respuesta directa y para que Dropbox esté arriba. Independientemente de sus problemas de relaciones públicas recientes con la comunidad de código abierto, Dropbox es invaluable para mí.
Falmarri
3

Puede usar github para todo su código, por supuesto, incluidos los archivos .bash_profile y los scripts de bash.

El servidor Hudson / Jenkins CI es bueno para mantener múltiples entornos. Utilizado junto con DbMaintain, también puede mantener sus bases de datos sincronizadas.

Mi equipo utiliza esta combinación para sincronizar cuatro estaciones de emparejamiento, una variedad de computadoras portátiles y entornos de CI, TEST y QA (con servidores y sus propias copias de la base de datos).

Esto implica máquinas Windows, computadoras portátiles Mac y servidores Linux, por lo que es bastante flexible.

Eric Wilson
fuente
2

Mantengo mis archivos de puntos en git, con ramas para configuraciones específicas de la máquina. Me permite configurar una nueva máquina rápidamente y puedo compartir scripts y mantenerlos en la última versión.

Daenyth
fuente
1

Quizás deba dar un paso atrás y preguntarse por qué necesita tantas computadoras. Es como si alguien preguntara cómo mantener todas sus cosas igual en los 5 autos que posee.

Le sugiero que se pregunte qué hace cada máquina que no hace su máquina principal, y simplemente haga que lo haga.

¿Has considerado una buena computadora portátil?

Si todo esto está en su casa, puede configurar un servidor y mantener todas las cosas allí. Entonces solo tiene una máquina con datos para respaldar.

Si son máquinas remotas, considere obtener un vps de Linux y almacene sus cosas remotas allí. No use ningún servicio gratuito en línea como github, dropbox, etc., ya que pueden desaparecer en el momento equivocado.

No use AWS para almacenar sus cosas. a $ 0.1 / mes / GB, eso es $ 100 / mes / TB, o $ 1200 / año / TB. Por ese dinero, puede comprar alrededor de 15 discos duros Western Digital de 1TB.

Si administra un negocio y gana dinero con él, use el mejor servicio que pueda obtener, pero para ser honesto, es difícil ganarle a los discos duros para mover muchos datos. Incluso las unidades micro USB de 32 GB son del tamaño de una uña y puedes mover muchos datos ...

Ahí está la nube, la nube privada. Tal vez debería haber la Nube personal ...

Christopher Mahan
fuente
Gracias por los consejos. Tengo 5 computadoras, pero uso solo 3 de ellas y necesito las tres. 1 servidor Ubuntu en casa, 1 laptop Thinkpad Ubuntu (el caballo de batalla) y 1 Macbook Pro para desarrollo iOS
dan
0

Git, migró desde Subversion, a su vez migró desde CVS. fgit (descargo de responsabilidad: por mí) para pull push, statusy gc.

l0b0
fuente
0

¿Has considerado crear algún tipo de infraestructura de nube allí? Parece ser la única forma de abstraer desde qué estación de trabajo tiene el servicio / archivo / cosa.

Aquí hay un enlace a la nube de Ubuntu .

Guiman
fuente
0

Yo uso Wuala como reemplazo de Dropbox. Un problema es la falta de monitoreo de carpetas en Linux. Básicamente analiza todos los archivos cada minuto. La próxima versión debería arreglar ese somhow, así lo dicen.

La sincronización en tiempo real en Linux es problemática si tiene decenas de miles de carpetas (por ejemplo, repositorios git) debido a la forma en que se implementa inotify. Para cada carpeta debe haber un "reloj"; consulte, por ejemplo, https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux

ert
fuente
Wuala ahora está muerta: en.wikipedia.org/wiki/Wuala
Gwyneth Llewelyn