일부 파일이 포함된 폴더가 있고 웹 서버에 일부 공간이 있습니다. 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/foo
hostB
hostA
rsync -auz /src/foo hostB:/dest
rsync -auz hostB:/dest/foo /src
첫 번째 명령은 모든 최신 파일 hostA
을 hostB
.
두 번째 명령은 모든 최신 파일을 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 클라이언트
- ...