ftp mget não sobrescrever

1

Estou usando o mget em um script ftp e gostaria que o mget ignorasse a obtenção de arquivos que já existem em meu diretório local. Existe tal caminho? Em caso afirmativo, existe também uma maneira de o mget prosseguir se os arquivos locais e remotos forem diferentes?

EDIT: Ambos são excelentes respostas, eu fui com o segundo porque forneceu um exemplo que eu modifiquei para:

lftp $HOST -u $USER,$PASSWD -e 'mirror --verbose=3 --only-newer --include "my-extended-regex-expression-of-include-file-patterns" / transfer/'
    
por andrewz 13.08.2016 / 22:03

2 respostas

4

Existem muitas implementações ftp diferentes. Eu não sei de nenhum programa ftp que tenha um comando mget que verifique arquivos locais antes de fazer o download.

Existem muitos programas que podem baixar arquivos por FTP e que possuem o que você deseja.

  • lftp

    lftp ftp.example.com <<EOF
    mirror --only-missing --file=/path/to/*.ext .
    EOF
    

    Substitua --only-missing por --only-newer para baixar apenas arquivos mais recentes.

  • wget

    wget -nc 'ftp://ftp.example.com/path/to/*.ext'
    

    Adicione a opção -N para baixar apenas arquivos mais recentes.

Alternativamente, e esta é a melhor solução para fazer coisas complexas, montar o sistema de arquivos remoto e, em seguida, usar ferramentas normais de manipulação de arquivos. Você pode montar um diretório FTP com o CurlFtpFS .

mkdir mnt
curlftpfs ftp://ftp.example.com/ mnt
rsync -a --ignore-existing mnt/*.ext .   # replace --ignore-existing by -u to download only newer files
fusermount -u mnt
    
por 14.08.2016 / 00:40
3

ftp por si só não pode fazer isso (nem a maioria das variações de sftp ). Isso geralmente é feito usando um programa mais capaz, como rsync ou lftp .

Se você não conseguir usar rsync , há aplicativos que usam ftp que podem ser configurados para a primeira parte (arquivos existentes), pelo menos. Por exemplo:

Mas (tendo usado tanto isso quanto o script Perl relacionado), rsync e lftp merecem algum estudo:

e

por 13.08.2016 / 22:18

Tags