it-swarm-korea.com

여러 컴퓨터간에 홈 폴더를 동기화하는 방법?

나는 집에서 3 대의 컴퓨터를 가지고 있으며, 3 대의 컴퓨터 사이에서 /home/ 폴더 트리를 동기화하려고합니다.
세 컴퓨터 중 하나에서 수정/추가/제거 된 모든 파일/폴더 (숨겨진 파일/폴더 제외)는 다른 두 파일에서 업데이트됩니다.

이렇게 할만 큼 rsync입니까? 그리고 어떻게?

116
lamcro

여기에이 문제를 해결할 수있는 목록이 있습니다. 각 문제는 당신이 다르게해야하는 절충점의 균형을 유지하기 때문에 스스로 선택을하고 스스로 해결해야합니다.

  • nison - 다른 사람들이 언급했듯이 이것은 수동으로 실행되지만 매우 빠르고 안정적이며 효과적입니다. 동기화중인 두 시스템이 동일하게 켜져 있어야합니다. 그것은 거의 불가피한 갈등을 처리 할 수 ​​있도록 좋은 사용자 인터페이스를 가지고 있으며 삭제를 올바르게 추적하고 전파합니다. 그래픽 응용 프로그램/패키지는 unison-gtk라고합니다.

  • OwnCloud - 자신의 서버에서 실행되는 클라우드 저장소입니다. 당신은 떠날 기계가 필요합니다. 합리적인 금액의 설치가 필요합니다. 서버에서 전체 Apache 2 웹 서버와 SqlLite 또는 MySQL 데이터베이스를 실행합니다. 바탕 화면 클라이언트가있는 Dropbox와 유사하지만 서버는 사용자가 제어 할 수 있습니다. 편집 : OwnCloud는 최근에 프로젝트가 어떻게 실행되었는지에 대한 몇 가지 변화를 겪었으며 NextCloud (이 부분을 보시려면 youtube interview 자세한 내용은 OwnCloud 개발자에게 문의하십시오.

  • SparkleShare - git을 사용하여 파일을 동기화 상태로 유지합니다. 홈페이지에 따르면 : 많은 작은 파일에 적합하고 음악이나 사진 컬렉션과 같은 대용량 파일에 적합하지 않습니다.

  • Seafile - 로컬 시스템에 설치할 수있는 서버 구성 요소를 제공합니다. Seafile은 변경 추적을 위해 데이터 모델 git과 유사 을 사용합니다. 데스크톱, 태블릿 및 스마트 폰용 동기화 클라이언트를 제공합니다. 설정을 설명하는 블로그 게시물은 http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/

  • Osync - "bash에서 작성되고 rsync를 기반으로하는 양방향 파일 동기화 도구로, ssh 터널을 통해 로컬 및/또는 원격 디렉토리에서 작동하며, 주로 cron 작업으로 시작될 것을 목표로합니다." 웹 사이트)

  • PowerFolder - Java 기반 GPL v2 프로젝트입니다. 기본 웹 사이트는 상업용 제품을 선전하므로 제공된 .jar 파일을 사용하는 방법이 명확하지 않습니다.

  • Rsync 는 빠르고 효과적이며 수십 년 동안 사용되었지만 히스토리를 유지하지 않으므로 파일을 새로 작성할지 삭제할지 결정할 방향을 선택해야합니다. gwRsync 와 같은 그래픽 도구를 사용할 수 있습니다.

  • Lsyncd - 폴더/파일을 모니터링하여 rsync 복제를 트리거합니다.

  • dvcs-autosync - 파이썬으로 작성되었으며 git을 사용하여 변경 사항을 컴퓨터간에 저장하고 공유하며 XMPP는 변경 사항을 전달합니다.

  • git-annex - git을 기반으로 파일을 shunting하기위한 명령 행 도구. 여기에 설명 된 연습이 있습니다. http://git-annex.branchable.com/walkthrough/

  • Tonido - 프리웨어. 파일을 다른 장치와 공유 할 수있는 데스크톱 응용 프로그램을 제공합니다. 또한 상업용 클라우드 오퍼링과 TonidoPlug 플러그 컴퓨터를 제공하십시오.

  • BitTorrent Sync (프리웨어) - BitTorrent를 기반으로 한 피어 투 피어 파일 동기화. 오픈 소스가 아니기 때문에 그것을 사용하지 않을 것이고 내 LAN에 내 데이터를 유지하는 것을 신뢰하지 않기 때문에 더 나은 정보/실제 경험으로이 대답을 자유롭게 편집 할 수 있습니다.

  • 싱크 싱 - 비트 토 런트 싱크의 오픈 소스 대안으로 개발되었습니다. 현재 BitTorrent Sync의 고급 기능 중 일부는 신뢰할 수없는 피어와 같이 부족합니다. 그것은 적극적으로 개발 중입니다.

  • Dropbox, 우분투 하나, Google 드라이브, Apple iCloud와 같은 상업용 호스팅 서비스는 모두 빠르고 저렴하지만 모든 데이터가있는 회사를 신뢰해야하며 합리적으로 빠른 인터넷 연결이 필요합니다.

  • 망할 놈 / 서브 버전 - 소스 제어 시스템을 직접 사용하십시오. 완전히 수동이며 프로그래밍 시스템으로 사용하는 이들 시스템에 익숙한 일부 사용자에게는 조금 복잡하지만 대중적인 접근 방식이 될 수 있습니다.

  • CloudFS - 전체 파일 시스템, 클러스터 기술 기반의 파일 동기화

  • NFS 마운트 - 기본적으로 가정은 한 대의 컴퓨터에 있으며 네트워크를 통해 액세스하므로 노트북과 함께 사용할 수 없습니다. 자세한 정보 : http://www.linuxjournal.com/article/488


결정을 내릴 때 고려해야 할 요소 :

  • 중앙 서버 - 일부 솔루션은 다른 시스템이 동기화 할 수 있도록 시스템이 항상 켜져 있어야합니다 (또는 적어도 동기화가 필요할 때). 이것은 기존 시스템 중 하나 일 수도 있고 NAS와 같은 별도의 시스템 일 수도 있습니다. 증가 된 전력 요금을 조심하십시오.

  • 자동/수동/예약 - 시스템이 아닌 다른 시스템에서 변경된 사항을 해결해야하는 것을 피하는 가장 좋은 방법은 변경 사항을 감시하고 즉시 동기화하는 모든 컴퓨터에 프로그램을 설치하는 것입니다. 버전. 수동 프로세스의 경우 항상 동기화를 실행해야합니다.

  • 원격 액세스 - LAN (일명 가정)에서 멀리 떨어져 동기화하고 싶습니까, 보안 문제에 대해 생각하십시오.

  • 보안 - 데이터가 네트워크를 암호화 된 상태로 유지하는지 여부, 컴퓨터간에 전송이 얼마나 안전한지 여부. 누군가가 이동 중에 데이터를 캡처하고 나중에 암호화에 결함이있는 것으로 밝혀지면 어떻게해야합니까? 귀하의 데이터를 보관하는 서버를 누가 통제합니까? 데이터가 공개 되었습니까? 제 3자를 신뢰할 수 있습니까? 라우터에 구멍을 뚫어 원격 액세스를해야합니까? 동기화 된 장치 및 중앙 서버에서 '삭제 된'파일 및 관련 메타 데이터가 얼마나 오래 지속됩니까? 암호화 된 저장소와 암호화되지 않은 저장소를 동기화하고 있습니까?

  • 대용량 폴더 이동 - 내가 시도한 솔루션에는 파일이나 폴더를 이동하거나 이름을 바꿀 때 동기화가이를 이해하지 못하고 다시 새로운 것으로 올린 다음 이전 복사본을 삭제한다는 문제가 있습니다. 이 문제를 해결할 수있는 위의 솔루션을 표시하여 도움을주십시오 (git 기반 솔루션은 콘텐츠 기반 어드레싱으로 인해 문제가 발생하지 않는다는 것을 의심스럽게 생각합니다. 그들을 사용하지 않음).

  • 디스크 용량

  • 백업 - 동기화는 백업이 아닙니다. 실수로 중요한 파일을 삭제하면 위의 파일 중 많은 파일이 다른 모든 사본을 기쁘게 삭제합니다. 모든 디지털 달걀을 하나의 디지털 바구니에 넣으면 일어날 수있는 일에 대해 좋은 말을하기 위해 Mat Honan의 조각을 해킹 중 을 읽는 것이 좋습니다.


전체 홈 폴더를 동기화하지 말고 Documents/, Pictures/ 등과 같은 특정 폴더를 선택하는 것이 좋습니다. 이렇게하면 모든 항목을 자동으로 동기화하는 속도/성능/디스크 공간 문제를 해결해야하는 어려움을 피할 수 있습니다. 또한 제외 목록을 유지 관리하지 않아도됩니다.

개인적으로 저에게 효과가있는 것을 찾으려고 계속 노력하면서 유용한 정보로이 답변을 최신으로 유지하려고 노력할 것입니다. 다른 모든 대답의 정보를 하나의 완전한 대답으로 집계했습니다.

참고 문헌 :

  • LinuxFormat - 2014 년 2 월 LXF180 p31, "Hosted Storage Roundup"

해킹/all /

88
Tim Abell

유니슨 이 좋은 후보 일 수 있습니다 :

Unison은 Unix 및 Windows 용 파일 동기화 도구입니다. 파일과 디렉토리 모음의 두 개의 복제본을 다른 호스트 (또는 동일한 호스트의 다른 디스크)에 저장하고, 개별적으로 수정 한 다음 각 복제본의 변경 사항을 기타.

이미 양방향 동기화를 수행합니다. 업데이트보기를 참조하십시오.

나는 rsync가 할 수있는 일이 거의 없다는 것을 배웠으며, 아마 같거나 더 나은 해결책을 제공 할 수 있지만, rsync 전문가가 그 해결책을 찾을 때까지 기다려야 할 것입니다.

업데이트 : 예, Unison은 2 대 이상의 기계를 동기화 할 수 있습니다. 해당 사용자 설명서 에서 :

유니슨을 사용하여 세 개 이상의 컴퓨터 동기화

Unison은 복제 쌍을 동기화하도록 설계되었습니다. 그러나 여러 쌍의 동기화를 수행하여 더 큰 그룹의 시스템을 동기화 상태로 유지하는 데이를 사용할 수 있습니다.

이렇게해야하는 경우 가장 안정적인 방법은 "스타 토폴로지"로 시스템을 구성하는 것입니다. 하나의 시스템이 "허브"로 지정되고 나머지는 "스포크"로 지정되고 각 스포크 시스템은 동기화됩니다 허브로만. 스타 토폴로지의 가장 큰 장점은 동기화되는 모든 호스트 쌍에 대해 Unison이 별도의 아카이브를 유지한다는 사실 때문에 발생하는 "가짜 충돌"을 혼란에 빠뜨릴 수 있다는 것입니다.

28
nagul

Subversion이나 git 같은 버전 관리 시스템에 파일을 저장하는 것은 어떻습니까?

나는 내 집 전체 버전을 버전 화하지 않지만, 몇 가지 중요한 것들을 담은 소수의 서브 디렉토리 만있다. 하지만 그것은 이런 종류의 일을 더 나은 것 때문에 자식으로 변환에 대해 생각하고 있어요. ( 빠른 검색은 올바른 방향으로 당신을 보낼 것입니다 ).

행운을 빕니다


업데이트 : git의 멋진 부작용은 컴퓨터 특정 파일을 갖는 것이 쉽다는 것입니다. 왜냐하면 그 컴퓨터의 브랜치 만 있으면되기 때문입니다. 태만). 따라서 모든 컴퓨터에서 정확히 같은 파일을 가질 필요는 없으며 서로 비슷해야하며 모든 다른 컴퓨터에서 원하는 항목으로 공통된 "기본"분기가 있어야합니다.

19
Johan

이 작업을 수행 할 때 가장 중요한 문제점은 변경 사항 병합, 삭제 전파 및 충돌 해결 방법을 결정하는 것입니다. 이것은 완전히 자동화 된 방법으로하기가 어렵습니다. 특히 여러 사람이 사용하는 컴퓨터 셋업이 3 개인 경우에 특히 그렇습니다.

사용자를 분리하면 훨씬 간단 해집니다. 한 사용자가 한 번에 두 장소에있을 수 없으므로 충돌이 발생할 수 있으므로 rsync 작업을 로그인하여 "변경 사항 가져 오기"로 로그 아웃하고 "변경 사항 보내기"로 로그 아웃하여 컴퓨터 중 하나에 설치할 수 있습니다. 마스터가 될 것입니다 ... 그래서이 세분화 수준에서는/home/myuser 전체가 아닌 매번/home/myuser를 동기화 할 것입니다. (사용자가 로그 아웃하지 않은 경우) 일시적으로 사용하지 않으면 추가 스크립트가 실행됩니다.

다른 많은 잠재적 인 해결책이 있지만, 내가 아는 한 마술처럼이 문제를 해결하는 것은 없습니다. 첫 번째 단계는 아마도 사용자가 기계를 사용하는 방법을 생각하고 사용자의 행동에 맞게 동기화 정책을 수립하는 것입니다.

6
Ira Cooke

일반적인 홈 폴더를 NFS로 마운트하여 원하는 것을 얻을 수 있다고 생각합니다. 이 기사 를 확인하십시오. http://www.linuxjournal.com/article/4880

5
jspeaks

체크 아웃 lsyncd

Lsyncd는 로컬 디렉터리 트리 이벤트 모니터 인터페이스 (inotify 또는 fsevents)를 감시합니다. 이벤트를 몇 초 동안 모으고 결합한 다음 하나 이상의 프로세스를 생성하여 변경 사항을 동기화합니다. 기본적으로 이것은 rsync입니다. 따라서 Lsyncd는 새로운 파일 시스템이나 블록 장치를 필요로하지 않고 설치가 비교적 간편하고 로컬 파일 시스템 성능을 저해하지 않는 경량 라이브 미러 솔루션입니다.

Rsync + ssh는 SSH를 사용하여 와이어를 통해 이동 대상을 재전송하는 대신 파일 및 디렉토리를 대상에서 직접 작동시키는 고급 작업 구성입니다.

세분화 된 사용자 정의는 config 파일을 통해 수행 할 수 있습니다. 커스텀 액션 설정은 셸 스크립트에서부터 루아 어 언어로 작성된 코드에 이르기까지 계단식 레이어로 작성 될 수 있습니다. 쉘 스크립트에서부터 루아 어로 쓰여진 코드에 이르기까지 다양합니다.

4
eric

이것은 완전히 해결책을 제공하지는 않으나, 시작을 줄 것입니다 :

파일을 rsync하기 위해 너무나 자주 cron 작업을 설정하십시오. 나는 다음과 같은 명령을 사용한다.

rsync -alhz --stats --progress --exclude-from '/etc/rsync_backup_excludes.conf' / -e ssh [email protected]:/path/to/home/

이렇게하면 rsync를 사용하여 필요한 변경 사항 만 복사하고 명령이 실행될 때마다 모든 내용을 다시 복사하지 않습니다.

--stats와 --progress는 선택 사항이며 스크립트에서 제외되어야합니다.

내 rsync_backup_excludes.conf 파일의 내용은 다음과 같습니다.

dev/*
proc/*
lost+found/*
mnt/*
sys/*
4
Matt Cofer

한 컴퓨터에서 다른 두 컴퓨터로 /home를 마운트하십시오. Automount는 이것을 잘 처리합니다.

2
Xenoactive

드롭 박스 http://www.getdropbox.com/ 교차 플랫폼 Win/Linux/Mac

2
Boxdog

PowerFolder - 파일 동기화, 동기화 폴더, 원격 저장소, 백업 및 개인 파일 공유. 집과 사무실 PC를 동기화하거나 휴가 사진을 공유하거나 문서에서 함께 작업 할 수 있습니다. PowerFolder의 안전한 피어 - 투 - 피어 기술은 인터넷이나 LAN을 통해 작동합니다.

1
Molly7244

시도 dvcs-autosync .

이는 git을 기반으로하며, XMPP를 사용하여 감염된 클라이언트에게 파일 변경 사항을 알리고 inode 변경을 통해 파일 변경 이벤트에 대응합니다. 따라서 파일 변경 직후에는 항상 정보를 얻습니다. 충돌이 발생하면 git의 입증 된 방법에 의존합니다.

나는 잠시 동안 SSH 공개 키를 통해 Dropbox 대체품으로 사용 해왔고 정말로 그 일을합니다.

1
schlypel

Configs를 동기화하고 싶다면 - 위에서 언급 한 도구들은 전혀 도움이되지 않습니다. configs는 자주 변경되며, 많은 로그 파일은 병합되어 병합되지 않습니다.
내 사기는 간단하고 어리 석다. 나는 마스터 워크 스테이션을 가지고 있는데, "~"의 모든 파일이 두 번째 "슬레이브"로 복사된다. 순간 나는 내가 뭔가를 수정해야한다는 것을 깨닫습니다. 나는 그것을 Master에서하고 Slave는 이러한 변화를 동기화합니다.

또한, 몇몇 bash 스크립트는이 머신들에서 다르게 실행되어야하므로, /etc/bash.bashrc를 편집했습니다 :

수출 OOHOST = 마스터

이제 스크립트는 어느 호스트에서 제공하는지 알 수 있습니다.

1
kolypto

우분투 원 이 당신이 원하는 것일 수 있습니다. 불행히도 아직 베타 단계에 있으며 경험이 없기 때문에 효과가 있는지 확신 할 수 없습니다.

1
Ilari Kajaste

Osync와 같은 동기화 스크립트를 사용하면 삭제 된 파일을 전파하고 수정 된 파일 만 업데이트 할 수 있습니다. http://www.netpower.fr/osync osync는 rsync 기반이지만 ssh를 통해 로컬 폴더 또는 원격 폴더 사이에서 많은 동기화 시나리오를 처리 할 수 ​​있습니다.

0
Orsiris de Jong

나는 SyncTwoFolders Mac 및 Syncback for PC - 집에서 나의 세 맥을위한 첫 번째 (포함 랩톱 ), 직장에서 내 PC를위한 두 번째. 두 프로그램 모두 다양한 백업 및 동기화 옵션을 제공하므로 사전 설정이 완료되면이를 쉽게 수행 할 수 있습니다. 쉬워요! 리눅스와 우분투에서 사용할 수있는 유사한 소프트웨어의 다른 버전이 있다고 확신합니다.

0

고려할 해결 방법 :

  • 드롭 박스.
    주된 단점 : 합리적인 양의 데이터가 있으면 무료가 아닙니다. 그렇지 않으면 그것은 완벽하게 작동합니다 IMHO

  • NAS 서버. NAS 서버에 파일을 넣으면 요즘 (150 $ 정도) 합리적으로 저렴 해졌으며 좋은 파일은 많은 에너지를 소비하지 않습니다. 동기화 문제가 없습니다.
    주된 단점 : 로컬 복사본보다 느리다

0
Rabarberski