로컬 폴더의 내용을 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.