Linux에서 로컬 및 원격 디렉터리 동기화

Linux에서 로컬 및 원격 디렉터리 동기화

일부 파일이 포함된 폴더가 있고 웹 서버에 일부 공간이 있습니다. Linux에서 로컬 폴더와 원격 폴더 간에 수정 시에만 양방향 동기화를 수행하고 싶습니다. 어떻게 해야 하나요? 그런데 서버에 아무 것도 설치할 수 없습니다. 모든 의도와 목적을 위해 그것은 단지 공간일 뿐입니다.

참고: 조용히 일어날 수 있도록 rsa 키 쌍을 설정했습니다.

답변1

단방향 동기화를 위해 선택한 도구는 rsync이고 양방향 동기화를 위해 선택한 도구는 다음과 같습니다.조화. 둘 다 양쪽에서 실행 파일을 사용할 수 있어야 합니다. 서버 측에서 파일을 실행 가능하게 만들 수 있는 경우 적합 바이너리를 제거하고 실행 가능하게 만듭니다.

로컬에 Linux, *BSD, Solaris 또는 Mac OS X가 있는 경우 다음을 사용할 수 있습니다.퓨즈웹 서버 공간을 로컬 파일 시스템처럼 보이게 만드는 파일 시스템sshfsSSH 액세스 권한이 있는 것 같으므로 작동해야 합니다. 그런 다음 "기본적으로" unison을 사용하십시오.

또한 대부분의 버전 제어 소프트웨어(CVS/Subversion 및 분산 VCS)에는 동기화 기능(한 시스템에서 체크인하고 다른 시스템에서 체크아웃)이 있습니다.

답변2

서버에 설치된 경우 rsync해당 빌드를 사용하여 작업을 수행합니다.

양방향으로 만들려면 다음을 수행하십시오(에서 인용됨).http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1285799008594+28353475&threadId=1278777):

모든 하위 디렉터리 를 포함하여 디렉터리를 on /src/foo에 양방향으로 동기화하려면 다음 명령을 on 에서 실행할 수 있습니다 .hostA/dest/foohostBhostA

rsync -auz /src/foo hostB:/dest 
rsync -auz hostB:/dest/foo /src

첫 번째 명령은 모든 최신 파일 hostAhostB.

두 번째 명령은 모든 최신 파일을 hostB가져 옵니다 hostA. 주요 옵션은 다음과 같습니다.

복사 시 파일 수정 시간을 보존해야 합니다. -a이것과 다른 일을 하라.

수정 시간만 유지하려면 대신 를 사용하세요 -t.

대상에서 최신 파일을 건너뛰려면 -u다음을 수행하십시오.

답변3

이는 두 폴더 간에 동기화해야 할 때마다 rsync매우 유연한 옵션입니다 . 문제는 rsync가 ftp 프로토콜을 지원하지 않는다는 것입니다. 좋은 해결책은컬프트프프스:

CurlFtpFS는 FTP 호스트에 액세스하기 위한 FUSE 및 libcurl을 기반으로 하는 파일 시스템입니다.

컬FtpFs를 사용하면 파일 시스템에 원격 ftp 폴더를 쉽게 포함할 수 있습니다.

다음은 두 도구의 사용법을 보여주는 간단한 예입니다.

curlftpfs -r -s ftp.foobar.com /foo
rsync -a /foo/ /bar
umount /foo

자세한 내용은 맨페이지를 읽어보세요.

컬FtpFS 설치 문제를 겪고 싶지 않고 일부 파일을 동기화 상태로 유지하려는 경우 이러한 동기화 기능을 제공하는 여러 FTP 도구가 있습니다.

  • FTPSync.pl- 로컬 및 원격 디렉토리를 동기화 상태로 유지하는 간단한 PERL 스크립트
  • 심지- 웹 페이지 업데이트를 위한 비대화형 FTP 클라이언트
  • 파일질라- 다양한 기능을 갖춘 GUI FTP 클라이언트
  • ...

관련 정보