Como sincronizar automaticamente o conteúdo de uma pasta local com o conteúdo de uma pasta ftp?

6

Após pesquisar em todos os lugares, não consegui encontrar uma resposta específica para a minha pergunta.

No Windows há um aplicativo chamado FTPbox que sincronizará automaticamente uma pasta local com um ftp a cada período definido tempo.

Minha pergunta é: como faço para conseguir o mesmo usando o Ubuntu? O principal é que eu não quero ter que fazer isso manualmente. Ele precisa ser um processo totalmente automático, sem intervenção humana necessária (obviamente eu vou ter que configurar isso se as classes como intervenção humana LOL).

Muito obrigado em antecipação por respostas úteis.

-Edward

    
por Edward Nunn 18.04.2016 / 12:10

1 resposta

10

Primeira solução

Instale lftp

sudo apt-get install lftp

após esse script de criação

#!/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
"

Salve-o em algum lugar com o nome upload.sh . Conceda +x permissão.

sudo chmod +x /path_to_script/upload.sh

Configure crontab para executar este comando em cada x de tempo

Para editar a execução do crontab

crontab -e

Para executar o comando em cada código de 5 min é

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

em todas as horas

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

para ser executado às 4h

 0 4 * * * /path_to_script/upload.sh

Solução dois

Crie um script pequeno e fácil chamado lftp-script que LFTP pode ler:

open ftp://username:[email protected]
mirror -v --only-newer /home/local/path/ /website.com/public_html/

Finalmente, você pode executar LFTP e iniciar a sincronização. Definir crontab como eu escrevo, mas coloque o comando

lftp -f /path/to/lftp-script

algo como isto

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

Solução três

Instale curlftpfs

sudo apt-get install curlftpfs

você precisa fazer para montar o ftp localmente para executar estes comandos criar pasta que será sincronizada

mkdir hostr

monte o diretório ftp remoto para o local

sudo curlftpfs -o allow_other ftp://user:[email protected] host

user: pass é o nome de usuário e senha para entrar na conta ftp.

Você pode adicionar curlftpfs a fstab para montagem automática usando esta linha:

curlftpfs#user:[email protected] /mnt/host fuse rw,uid=500,user,noauto 0 0
    
por 2707974 18.04.2016 / 12:45

Tags