여러 대의 컴퓨터를 사용하는 경우 모든 것을 어떻게 동기화합니까? [닫은]


31

지금은 4-5 대의 컴퓨터가 마음에 들어 모든 것을 동기화 할 수있는 더 나은 시스템이 필요합니다. 나는 git과 github을 사용하여 프로그래밍 프로젝트를 위해 파일을 동기화하지만 데이터베이스, .bash_profile 파일, bash 스크립트 등이 있습니다. 때로는 파일을 동기화하는 대신 한 컴퓨터에서 다른 컴퓨터로 ssh를 넣습니다. 그러나 이것은 상당히 혼란스러워지고 있습니다. 내 컴퓨터 중 일부는 Ubuntu이고 다른 컴퓨터는 OS X입니다.

여러 대의 개인용 컴퓨터에 걸친 워크 플로 관리에 대한 제안 사항이 있습니까?


1
어쩌면 내가 네트워크 공유 폴더를 시도해야
dan

1
@rwong @dan이 처음에 "정상적인 답변"을 찾고 있다는 인상을 받았습니다. rsync 및 공유 폴더를 사용하여 어떻게 그를 도울 수 있는지 설명하는 답변을 게시하십시오.
Adam Lear

1
매우 신중하게.
greyfade

4
이것은 실제로 프로그래밍에만 국한되지 않습니다. 아마도 SU로 마이그레이션하는 것이 더 좋은 곳일까요?
Walter

1
@FarmBoy-DB 유형에 의존 할 것입니다. 많은 파일이 실제로 파일 일뿐이므로 프로그래밍 문제가 아닌 파일 동기화 문제로 여전히 봅니다. 그리고 SU에 대해 훨씬 더 다양한 답변이있을 것이라고 생각합니다. 그냥 내 2 센트.
Walter

답변:


15

git 리포지토리에는 Git과 다른 모든 것에 Unison 을 조합하여 사용합니다 . 여러 개의 단일 프로파일이 있으므로 특정 항목을 동기화하고 모든 것을 동기화하는 프로파일을 만들 수 있습니다. 또한 bash 스크립트가있어 동기화하고 동기화 한 모든 것을 동기화하고 모든 git 저장소를 업데이트합니다.

컴퓨터 동기화와 관련하여 Unison은 제 생각에 가장 좋습니다.


1
데이터베이스를 어떻게 동기화합니까? DDL 및 DML 변경 모두에 적용됩니까?
Eric Wilson

현재 SQL / 데이터베이스 관련 작업을 수행하고 있지 않으므로 해당 질문에 적용 할 수 없으므로 해당 질문에 대답 할 수 없습니다. 나는 원래 질문의 그 부분을보고 싶었고 모든 코드와 프로필 정보를 어떻게 동기화합니까?
sp0rus

Unison을 사용할 때 버전 충돌이 발생합니까? 그것들을 어떻게 최소화합니까?
dan

변경하기 전에 항상 수동으로 동기화하여 최신 버전의 파일을 편집하고 있습니다. 또한 매일 밤 컴퓨터를 동기화하기위한 크론 작업 세트가 있습니다. 이 시스템을 고수함으로써 버전 충돌에 아무런 문제가 없었습니다. 내가 벗어나야했고 갈등이 발생했을 때, 나는 다른 것을 대체하고 싶은 것을 선택할 수있었습니다.
sp0rus

15

드롭 박스

파일 동기화의 경우 DropBox가 알고있는 폴더 내에서 작업하는 것만 큼 쉽습니다. 메인 페이지의 비디오는 대부분의 설명을 수행하므로 기능에 대해 언급하지 않았습니다. 버전이 지정된 파일을 수정하기 만하면 DropBox가 자동으로 업로드 한 다음 DropBox가있는 다른 모든 컴퓨터에서 자동으로 최신 버전을 다운로드합니다.

데이터베이스와 같은 경우 심볼릭 링크가 갈 수 있습니다. DropBox 포럼 의이 스레드 는 MySQL 데이터베이스를 동기화하는 방법에 대한 통찰력을 제공합니다. 또는 "내보내기 / 가져 오기"스크립트 경로를 수행하거나 실제로 MySQL을 사용하는 경우 복제 및이 를 구현하는 방법 (DropBox를 사용하지 않는 MySQL의 기능)을 살펴볼 수 있습니다 .


Dropbox를 사용하여 데이터베이스를 동기화하는 방법을 모르겠습니다.
Eric Wilson

보관 용 디렉토리와 정기적 인 데이터베이스 덤프 / 복원을 예약 할 수 있습니다.
badgerr

6
@badgerr OP가 언급 한 다양한 시나리오에서 Dropbox를 사용하는 방법을 포함하도록 답변을 확장 해보십시오.
Adam Lear

못 생겼어 DbMaintain과 같은 스크립트 러너를 사용하고 싶습니다.
Eric Wilson

1
Anna가 언급 한 이유는 -1입니다. 답을
넓히면

7
  • 드롭 박스
  • 깃 허브
  • 북마크 / 이력 / Firefox 설정을위한 Firefox 동기화

1
정답과 드롭 박스가 맨 위에 있으면 +1입니다. 최근 오픈 소스 커뮤니티와의 PR 문제에 관계없이 dropbox는 매우 귀중합니다.
Falmarri

3

물론 .bash_profile 파일 및 bash 스크립트를 포함하여 모든 코드에 github을 사용할 수 있습니다.

Hudson / Jenkins CI 서버는 여러 환경을 유지 관리하는 데 적합합니다. DbMaintain과 함께 사용하면 데이터베이스 동기화도 유지할 수 있습니다.

우리 팀은이 조합을 사용하여 4 개의 페어링 스테이션, 다양한 랩톱 및 CI, TEST 및 QA 환경 (서버 및 자체 DB 사본)을 동기화합니다.

여기에는 Windows 컴퓨터, Mac 랩톱 및 Linux 서버가 포함되므로 매우 유연합니다.


2

기계 별 설정을위한 분기와 함께 내 점 파일을 git에 유지합니다. 새 컴퓨터를 빠르게 설정할 수 있으며 스크립트를 공유하고 최신 버전으로 유지할 수 있습니다.


1

아마도 물러서서 왜 그렇게 많은 컴퓨터가 필요한지 스스로에게 물어봐야 할 것입니다. 마치 자신이 소유 한 5 대의 자동차에서 모든 물건을 똑같이 유지하는 방법을 묻는 사람과 같습니다.

나는 당신이 당신의 기본 머신이하지 않는 각 머신이 무엇을하는지 스스로에게 물어보고 그렇게하도록 제안 할 것입니다.

당신은 좋은 노트북을 고려 했습니까?

이것들이 모두 집 안에 있다면 서버를 설치하고 모든 것을 보관할 수 있습니다. 그런 다음 백업 할 데이터가있는 머신 하나만 있습니다.

그들이 원격 컴퓨터라면, 리눅스 vps를 가져 와서 원격 저장소를 저장하십시오. github, dropbox 등과 같은 무료 온라인 서비스는 잘못된 시간에 사라질 수 있으므로 사용하지 마십시오.

물건을 저장하기 위해 AWS를 사용하지 마십시오. GB 당 월 $ 0.1, 즉 $ 100 / 월 / TB 또는 $ 1200 / 년 / TB입니다. 그 돈으로 약 15 개의 Western Digital 1TB 하드 드라이브를 구입할 수 있습니다.

비즈니스를 운영하고 돈을 버는 경우 가능한 최고의 서비스를 사용하십시오. 그러나 솔직히 말하면 하드 드라이브를 이겨서 많은 데이터를 이동시키기는 어렵습니다. 32GB 마이크로 USB 드라이브조차도 손톱 크기이므로 많은 데이터를 이동할 수 있습니다 ...

클라우드, 프라이빗 클라우드가 있습니다. Personal Cloud가 있어야 할 수도 있습니다 ...


팁 주셔서 감사합니다. 컴퓨터가 5 대인데 그 중 3 대만 많이 사용하는데 3 대가 필요합니다. 집에있는 1 개의 Ubuntu 서버, 1 개의 Thinkpad Ubuntu 랩탑 (작업용) 및 1 개의 iOS 개발 용 Macbook Pro
dan

0

Subversion에서 마이그레이션 된 Git은 CVS에서 마이그레이션되었습니다. fgit (면책 조항 : 내게로)에 대한 pull push, status그리고 gc.


0

거기에 일종의 클라우드 인프라 생성을 고려한 적이 있습니까? 어떤 워크 스테이션에 서비스 / 파일 / 사물이 있는지 추상화하는 유일한 방법 인 것 같습니다.

Ubuntu Cloud에 대한 링크는 다음과 같습니다 .


0

Dropbox의 대체품으로 Wuala를 사용 합니다. 한 가지 문제는 Linux에서 폴더 모니터링이 부족하다는 것입니다. 기본적으로 모든 파일을 1 분마다 스캔합니다. 다음 버전에서는 그 방법을 수정해야합니다.

inotify가 구현되는 방식으로 인해 수만 개의 폴더 (예 : git 저장소)가있는 경우 Linux에서 실시간 동기화에 문제가 있습니다. 모든 단일 폴더에 대해 하나의 "감시"가 필요합니다 (예 : https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux 참조).


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.