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


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.