네트워크와 인터넷을 통해 홈 폴더를 어떻게 동기화합니까?


8

노트북을 Ubuntu-desktop과 함께 사용하여 모든 작업을 수행 할 수 있지만 사무실에 저급 데스크톱이 있습니다. 필자는 Ubuntu 서버를 설치하고 전체 노트북 홈 폴더를 미러링하여 랩톱의 하드 디스크를 포맷하기로 결정할 때 작업을 쉽게하기로 결정했습니다.

내가 일할 때마다 두 컴퓨터는 모두 네트워크에 연결되어 있으며 ssh를 통해 쉽게 (및 고속) 통신합니다. 내가 근무 중이 아닌 경우에도 ssh를 통해 데스크톱에 액세스 할 수 있습니다. 이상적으로는 무언가를 변경할 때마다 백그라운드에서 자동으로 동기화됩니다. 그것은 한 가지 방법 일뿐입니다 : 랩톱에서 변경 한 내용을 서버에 동기화해야하지만 그 반대는 필요하지 않습니다.

나는 이것에 대한 소프트웨어가 있다는 것을 알고 있습니다. 제 질문은 위의 목표를 달성하고 직장에있을 때 로컬 네트워크 속도를 최대한 활용할 수있는 소프트웨어는 무엇입니까?입니다. 때로는 큰 파일을 처리하기 때문에 동기화 프로세스는 두 컴퓨터가 로컬 네트워크를 공유하고 있다는 것을 인식하고 인터넷을 통해 항상 동기화하는 대신이를 활용해야합니다.

명확하게 말하면, 네트워크를 통한 동기화는 실제로 인터넷을 통한 동기화보다 더 중요합니다. 이상적으로는 소프트웨어가 전자가 사용 가능한지 확인하고, 그렇지 않은 경우 후자를 사용해보십시오. 그러나 그것이 가능하지 않다면, 첫 번째 경우는 저의 우선 순위입니다.

이것이 너무 길지 않기를 바랍니다. 미리 감사드립니다.

답변:


11

SSH를 통해서만 사무실 서버에 연결할 수 있다면 rsync 를 사용하는 것이 가장 좋습니다 . SSH를 전송 프로토콜로 사용하고 스마트 알고리즘을 사용하여 변경된 블록 만 전송하여 큰 파일의 전송 속도를 높입니다.

단방향 동기화 만 필요하므로 랩톱에서 사무실 서버로 암호없는 SSH 인증을 설정하면 다음과 같은 간단한 명령으로 시작할 수 있습니다.

rsync -e ssh -a $HOME/ myuser@officeserv:

동기화하려는 파일 / 디렉토리 목록을 세분화하기위한 추가 --include--exclude옵션. 예를 들어 두 컴퓨터가 동일한 OS (동일 버전)를 실행하지 않으면 프로그램 설정 ( "도트 파일")을 전송하는 것이 위험 할 수 있습니다. 내 제안은 모든 "도트 파일"을 제외하고 시작하여 --exclude="$HOME/.[a-z]*"안전하게 공유 할 수있는 프로그램의 구성 디렉토리를 선택적으로 추가하는 것입니다 (프로그램별로 프로그램에서 볼 수 있어야 함). 또한 웹 브라우저 캐시 $HOME/.cache는 항상 제외 할 수 있습니다. rsync포함 / 제외 규칙 구문에 대한 자세한 내용은 매뉴얼 페이지 의 "필터 규칙"섹션을 참조하십시오.

그러나 rsync"연속 작동"모드가 없으므로 crontab 에서 주기적으로 실행해야합니다 .


잘 들립니다. 서버를 설치하자마자 테스트하겠습니다. 한 가지 질문 : SSH 프로토콜이 서버에 가장 짧은 연결을 자동으로 사용합니까? 클라이언트와 서버가 모두 사무실 네트워크에있는 경우 로컬 네트워크를 통해 연결됩니까 아니면 항상 인터넷 연결을 시도합니까?
Malabarba

그건 그렇고, 당신은 브라우저 캐시에 대해 정확합니다. 제외해야 할 폴더에 대한 다른 제안이 있습니까? 내 목표는 모든 개인 파일, 프로필, 설정 및 구성 파일을 동기화하는 것입니다.
Malabarba

1
@Bruce Connor : SSH는 일반적인 IP 라우팅 알고리즘을 사용하여 원격 호스트에 연결합니다. 초기 제외 목록에 대한 제안으로 답변 텍스트가 업데이트되었습니다.
Riccardo Murri

감사. 충돌을 피하기 위해 랩톱의 홈 폴더를 서버의 실제 폴더가 아닌 서버의 하위 폴더에 동기화 할 수 있습니다.
Malabarba

"암호없는 SSH 인증"으로 @riccardomurri 키 파일 기반을 의미합니까? 또는 다른 것?
david.libremone

3

rsync보다 rdiff-backup을 사용하는 것이 좋습니다. 그것은 단지 rsync ++입니다.

diff를 전송하는 1-1 미러 인 rsync와 달리 rsync에는 기록 메커니즘이 있습니다. 따라서 중요한 것을 망치고 삭제 한 경우 1 주일 전으로 되돌아 가서 다시 가져올 수 있습니다.

우분투 "서버"에서 rdsh-backup을 apt-get하기 위해 ssh를 실행해야합니다.

클라이언트에서. 수동으로 실행하거나 crontab을 통해 실행합니다.

#!/bin/bash

  #backup.sh

  rdiff-backup -v5 --exclude path-to-annoyingfile  /home/user/ hostname::/media/data/snapshots/laptop 
  ## this will cleanup any backups older then 2weeks.  Adjust this as needed.
  rdiff-backup --remove-older-than  2W --force  hostname::/media/data/snapshots/laptop


  #!/bin/bash
  ##Restore.
  rdiff-backup -v5 --restore-as-of now --force user@hostname::/media/data/snapshots/laptop  /home/user

인터넷에 포트 22를 열면 두 가지 방법으로 동일한 스크립트를 실행할 수 있어야합니다. 호스트 이름을 로컬 IP로 로컬로 확인하십시오.

즉. backupSrv.penguins.org는 외부 IP로 분석합니다. 2.3.4.5. 그러나 LAN 내부 : 192.168.1.253


스크립트에 줄 바꿈이 몇 개 누락 된 것 같습니다.
Malabarba

2

내가 아는 문제에 대한 사전 패키지 된 완벽한 솔루션은 없습니다. 아마도 작은 스크립트를 직접 작성해야 할 것입니다.

rsyncRiccardo Murri가 이미 설명했듯이 동기화 자체는에 의해 수행 될 수 있습니다 . Rsync는 변경된 파일 부분 만 전송하므로이 작업에 적합합니다.

NetworkManagerDispatcher 를 사용하여 네트워크 인터페이스의 연결 / 연결 해제시 스크립트를 실행할 수 있습니다 . 따라서 올바른 네트워크에 있는지 확인한 다음 rsync를 호출하는 스크립트를 작성할 수 있습니다. 이렇게하면 회사 네트워크에 연결할 때 데이터가 자동으로 동기화됩니다.

데이터를 주기적으로 동기화하기 위해 이미 언급했듯이 cron을 사용할 수 있습니다.

ssh를 통한 rsync 사용시 보안도 고려해야합니다. 사용자 개입없이 동기화하려면 암호가없는 키 파일이 필요합니다. 이 키 파일을 가진 사람은 누구나 해당 키 파일에 액세스 할 수 있습니다. 노트북과 서버의 데이터를 보호하기 위해 홈 폴더를 암호화하는 것이 좋습니다.


1

DropBox | DropBox @ SuperUser http://www.dropbox.com/help/137

DropBox는 귀하의 경우에 좋으며 Linux, mac, windows, 쉬운 설정 및 관리에서 작동합니다.

DropBox 다운로드

/superuser/147315/dropbox-to-sync-nix-home-folders

http://wiki.dropbox.com/TipsAndTricks/SyncOtherFolders

읽어보십시오-심볼릭 링크를 통한 동기화를 지원하며 동기화 해야하는 특정 문서, 그래픽, 스프레드 시트가있는 경우 여전히 사본을 보관 용 계정에 보관하거나 보관 용 폴더에 영구적으로 저장하여 번거 로움을 줄일 수 있습니다.


Dropbox를 홈 폴더로 설정할 수는 없습니다 (적어도 아직은 아닙니다).
Matthew

superuser.com/questions/147315/dropbox-to-sync-nix-home-folders wiki.dropbox.com/TipsAndTricks/SyncOtherFolders 읽어보기-심볼릭 링크를 통한 동기화를 지원하며 특정 문서, 그래픽, 스프레드 시트가있는 경우 동기화해야 함-여전히 사본을 보관 용 계정에 보관하거나 보관 용 폴더에 영구적으로 저장하여 번거 로움을 줄일 수 있습니다.
rihatum

1
고맙지 만 드롭 박스 크로스 플랫폼을 이미 사용하고 있습니다. 내가 찾고있는 것은 비용없이 많은 GB의 파일을 동기화하고 로컬 네트워크를 활용할 수있는 것입니다.
Malabarba

1

Sparkleshare를 사용해보십시오 : http://sparkleshare.org/

우분투 저장소에는 클라이언트가 있으며 웹 사이트에서 서버를 설정하는 방법에 대한 지침이 있습니다.


가장 해킹이 적은 솔루션 인 훌륭한 프로그램처럼 보입니다. 버전 1.0은 지난 달에 릴리스되었습니다.
Abe

0

2015 년 최고의 솔루션은 Seafile입니다 : https://www.seafile.com/en/download/

Sparkleshare 개발자들은 자신의 툴이 작고 특히 많은 텍스트 파일에는 유용하지만 더 큰 바이너리 파일에는 좋지 않다고 말합니다.

그리고 성능면에서 Sparkleshare와 Owncloud보다 성능이 뛰어납니다.

또한 OwnCloud보다 훨씬 배가 고프지 않으므로 인스턴스는 연중 무휴 컴퓨터로 문제없이 바나나 또는 라즈베리에서 실행할 수 있습니다. (Gigabit 네트워크와 SATA 인터페이스 때문에 Banana Pi를 추천합니다. 적어도 파일 서버에는 적합했습니다.)

홈 폴더를 세 대의 컴퓨터와 동기화합니다. 나는 도트 파일을 제외하고, git repo와 일부 논리를 처리합니다. Ricardo가 언급했듯이 동일한 OS 및 릴리스에서도 다른 컴퓨터에서 도트 파일 및 기타 구성을 공유하는 데 약간의 문제가 있기 때문입니다. 예를 들어, monitors.xml 또는 랩톱 및 멀티 스크린 데스크탑의 IDE 또는 두 컴퓨터에서 열린 프로그램의 다른 레이아웃에 대해 생각해보십시오.

동기화에 추가하여 borgbackup을 통해이 데이터를 백업합니다. 중복을 제거하는 매우 멋진 새 백업 프로그램은 초기 백업 후 매우 빠르며 많은 도구에 부족한 많은 기능이 있습니다.

나에게 완벽한 설정입니다.

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