it-swarm-ko.tech

Linux의 원격 디렉토리와 로컬 디렉토리 동기화

몇 개의 파일이 들어있는 폴더와 웹 서버에 약간의 공간이 있습니다. 수정 시간에 로컬 폴더와 Linux의 원격 폴더 사이에 양방향 동기화를 수행하고 싶습니다. 어떻게해야합니까? btw 나는 서버에 아무것도 설치할 수 없으며 모든 의도와 목적을 위해 공간 일뿐입니다.

참고 : 이미 rsa 키 쌍이 설정되어 있으므로 자동으로 수행 될 수 있습니다.

14
Andrew Redd

단방향 동기화를 위해 선택한 도구는 rsync이고 양방향 동기화를 위해 선택한 도구는 nison 입니다. 둘 다 실행 파일이 양쪽에서 모두 사용 가능해야합니다. 서버 측에서 파일을 실행 가능하게 만들 수 있으면 unison 바이너리를 삭제하고 실행 가능하게 만드십시오.

Linux, * BSD, Solaris 또는 Mac OS X가 로컬에있는 경우 Fuse 파일 시스템을 사용하여 웹 서버 공간을 로컬 파일 시스템으로 표시 할 수 있습니다. sshfs should ssh 액세스 권한이있는 것 같기 때문에 작동합니다. 그런 다음 "로컬로"한마음으로 사용합니다.

또한 대부분의 버전 제어 소프트웨어 (CVS/Subversion 및 분산 된 VCS)에는 단계별 기능 (한 컴퓨터에서 체크인하고 다른 컴퓨터에서 체크 아웃)으로 동기화가 있습니다.

서버에 설치되어있는 경우 rsync 사용하면 정확히 해당 작업을 위해 빌드됩니다.

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

모든 하위 디렉터리를 포함하여 hostA/src/foo 디렉터리를 hostB/dest/foo에 양방향으로 동기화하려면 hostA :

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

첫 번째 명령은 hostA의 모든 최신 파일을 hostB로 푸시합니다.

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

복사 할 때 파일 수정 시간을 보존해야합니다. -a는이 일과 다른 일을합니다.

수정 시간 만 보존하려면 대신 -t를 사용하십시오.

대상에있는 최신 파일을 건너 뛰려면 -u이 (가) 이렇게합니다.

4
tante

두 폴더 rsync간에 동기화가 필요할 때마다 매우 유연한 선택입니다. 문제는 rsync가 ftp 프로토콜을 지원하지 않는다는 것입니다. 이에 대한 좋은 해결 방법은 curlFtpFS 입니다.

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

CurlFtpF를 사용하면 파일 시스템에 원격 ftp 폴더를 포함하기가 매우 쉽습니다.

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

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

자세한 내용은 맨 페이지를 참조하십시오.

CurlFtpFS를 설치하는 이러한 노력을 원하지 않고 일부 파일을 동기화 상태로 유지하려는 경우 이러한 동기화 기능을 제공하는 많은 ftp 도구가 있습니다.

  • FTPSync.pl -로컬 및 원격 디렉토리를 동기화 상태로 유지하는 간단한 Perl 스크립트
  • weex -웹 페이지 업데이트를위한 비대화 형 FTP 클라이언트
  • filezilla -많은 기능을 가진 GUI FTP 클라이언트
  • ...
1
echox