유닉스 :
다음 cmd 줄이 제대로 작동합니다.
rsync -avr -e ssh /home/dir user@example.com:/home/
그러나 FTP 서버 만있는 원격 서버로 rsync하도록 지금 설정해야합니다. 어떻게하면 되나요?
나는 rsync 도움말을 보았지만 빨리 잃어 버렸습니다 (이 일을 자주하지는 않습니다).
답변
당신은하지 않습니다. rsync는 당신을 위해 그것을 할 수 없으며, 그것은 자체 프로토콜이며 FTP를 통해 작동하지 않습니다.
그러나 csync 시도 할 수 있습니다 . IIRC는 HTTP를 통해 rsync와 유사한 동작을 제공합니다. FTP를 통해 작동하는지에 대해서는 언급 할 수 없으므로 시도해야합니다.
답변
다른 사람들이 언급 한 이유로 rsync 가 작동하지 않습니다. 그러나 lftp 와 ncftp 에는 모두 필요에 맞는 “미러”모드가 있습니다.
나는 이것을 사용하여 로컬 디렉토리에서 ftp 또는 sftp 웹 호스트로 물건을 푸시합니다.
lftp -c "set ftp:list-options -a;
open ftp://user:password@your.ftp.com;
lcd ./web;
cd /web/public_html;
mirror --reverse --delete --use-cache --verbose --allow-chown
--allow-suid --no-umask --parallel=2 --exclude-glob .svn"
답변
쓴 것처럼 이젤 , lftp
좋은 도구입니다.
스크립트를 매개 변수화하고
exclude-glob
쉘의 glob 기능 (* ,? ..)을 사용하여 파일 이름을 제외하는 옵션 :
#!/bin/bash
HOST="your.ftp.host.dom"
USER="username"
PASS="password"
FTPURL="ftp://$USER:$PASS@$HOST"
LCD="/path/of/your/local/dir"
RCD="/path/of/your/remote/dir"
#DELETE="--delete"
lftp -c "set ftp:list-options -a;
open '$FTPURL';
lcd $LCD;
cd $RCD;
mirror --reverse \
$DELETE \
--verbose \
--exclude-glob a-dir-to-exclude/ \
--exclude-glob a-file-to-exclude \
--exclude-glob a-file-group-to-exclude* \
--exclude-glob other-files-to-exclude"
경고 : 대상 디렉토리가 존재하는지 확인하십시오. 그렇지 않으면 cd 명령이 실패하므로 파일 트리 삭제를 포함한 조작이 잘못된 디렉토리 (루트)에서 발생합니다!
--delete
defaut에 의해 옵션이 비활성화 되도록 스크립트를 업데이트 했습니다.를 주석 해제하여 활성화하십시오 DELETE= command
.
답변
실제로 수행하려는 작업에 따라 완전히 다른 또 다른 방법을 사용 curlftps
하여 ftp 폴더를 마운트 한 다음 rsync
두 개의 “로컬”폴더 를 마운트 할 수 있습니다 .
배포판에 따라 설치가 다르므로 일반화 할 수는 없지만 설치 fuse
하고 curlftpfs
( fuse
기본적으로 데비안이 기본적으로 이미 설치되어 있음) 다음을 수행하십시오.
-
sudo apt-get install curlftpfs
-
fuse
모듈이로드 되었는지 확인하십시오 (modprobe fuse
) sudo curlftpfs ftp.yourserver.com /path/to/ftp/folder/ -o user=username:password,allow_other
마지막 쉼표 뒤에 공백이 없습니다 (오타가 아님). 당신이 그것에 만족하거나 매번 그것을하고 싶지 않다면, 당신은 그것을 fstab에 추가 할 수 있습니다 (일반적으로 /etc/fstab
) :
curlftpfs#user:password@ftp.yourserver.com /path/to/ftp/folder/ fuse auto,user,uid=1000,allow_other 0 0
이 경우 퓨즈 모듈을 먼저로드해야합니다.
그러나 두 가지 사항에 대해 조언하십시오.
- 개발자가 1-2 년 전에 프로젝트를 중단했기 때문에 당분간 사용 가능한 / 안정적인 방법을 모르겠습니다.
- 비밀번호에 이상한 문자
curlftpfs
가 포함되어 있으면 실패 할 수 있습니다 (을 사용하여 무언가를 수행 할 수 있음.netrc
).
답변
이 weex은 …
Weex는 웹 페이지 또는 다른 FTP 아카이브를 원격으로 유지 관리하는 작업을 자동화하도록 설계된 유틸리티입니다. 필요에 따라 업로드 및 원격 삭제를 수행하여 로컬 파일 세트를 원격 서버에 동기화합니다.
답변
rsync는 ftp를 통해 작동하지 않습니다. 원격 측에는 rsync 데몬 또는 rsync를 호출 할 수있는 쉘이 필요합니다. Ftp는 일반적으로 몇 가지 명령을 호출 할 수 있으며 rsync는 그 중 하나가 아닙니다. “lftp”와 같은 ftp 작업을 자동화하기위한 다른 도구가 있습니다.