로컬 폴더의 내용을 ftp 폴더의 내용과 자동으로 동기화하는 방법은 무엇입니까?


9

모든 곳을 검색 한 후 내 질문에 대한 특정 답변을 찾지 못했습니다.

Windows에는 FTPbox 라는 응용 프로그램이 있습니다.이 응용 프로그램에는 설정된 기간마다 FTP와 로컬 폴더를 자동으로 동기화합니다.

내 질문은, 우분투를 사용하여 같은 것을 어떻게 달성합니까? 가장 중요한 것은 수동으로 수행하고 싶지 않은 것입니다. 사람의 개입이 필요없는 완전 자동 프로세스 여야합니다 (해당 클래스가 사람의 개입 LOL 인 경우이를 설정해야 함).

유용한 답변에 대한 기대에 감사드립니다.

에드워드

답변:


16

첫 번째 해결책

설치 lftp

sudo apt-get install lftp

그 후 스크립트 작성

#!/bin/bash
HOST='mysite.com'
USER='myuser'
PASS='myuser'
TARGETFOLDER='/new'
SOURCEFOLDER='/home/myuser/backups'

lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"

이름이있는 곳에 저장하십시오 upload.sh. 그것을 줄 +x수있는 권한입니다.

sudo chmod +x /path_to_script/upload.sh

설치 프로그램은 crontab모든에서이 명령을 실행하는 x시간의 기간

crontab 실행 편집

crontab -e

5 분마다 명령을 실행하려면

 */5 * * * * /path_to_script/upload.sh

매시간마다

 0 */1 * * * /path_to_script/upload.sh

오전 4시에 실행

 0 4 * * * /path_to_script/upload.sh

해결 방법 2

라는 작은 쉬운 스크립트 만들기 lftp-script것을 LFTP읽을 수 있습니다 :

open ftp://username:password@website.com
mirror -v --only-newer /home/local/path/ /website.com/public_html/

마지막으로 LFTP동기화를 실행 하고 시작할 수 있습니다 . 내가 쓰지만 명령을 넣는 것처럼 crontab을 설정하십시오.

lftp -f /path/to/lftp-script

이 같은

 */5 * * * * lftp -f /path/to/lftp-script

해결책 3

설치 curlftpfs

sudo apt-get install curlftpfs

ftp를 로컬로 마운트하기 위해해야 ​​할 일은 다음 명령을 실행하는 것입니다.

mkdir hostr

원격 ftp dir을 로컬에 마운트

sudo curlftpfs -o allow_other ftp://user:pass@ftp.example.com host

user : pass 는 ftp 계정에 로그인하기위한 사용자 이름 및 비밀번호입니다.

다음 줄을 사용하여 자동 마운트에 추가 curlftpfs할 수 있습니다 fstab.

curlftpfs#user:pass@ftp.example.com /mnt/host fuse rw,uid=500,user,noauto 0 0

1
TARGETFOLDER = '/ new'= FTP의 폴더? SOURCEFOLDER = '/ home / myuser / backups'= 업로드 할 파일이있는 로컬 폴더?
Edward Nunn

그렇습니다. :)
2707974

이 파일 전송 중 Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ; '
Edward Nunn

ftp 서버 경로를 기반으로 /new폴더 뿐만 아니라 meybe . 두 경로를 모두 확인하십시오.
2707974

source folder로컬 에서 폴더를 만들 경우 해당 폴더는 ftp 폴더와 동기화되어야합니다.
2707974
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.