Espelho LFTP carrega apenas arquivos não existentes para o diretório remoto

1

A cada 5 minutos, alguns arquivos novos são baixados via lftp para um diretório local. Eu preciso enviar para outro ftp apenas os arquivos não existentes. Meu script até agora é:

#! /bin/bash
today=$(date +%Y%m%d)
today_files="rec."$today"_"
programa_dir="/home/user/local-dir"

# Download files, that do not exist in the local directory
lftp <<EOF
open -u user,pass ftp1
mget "$today_files*" -O $programa_dir
bye
EOF

# Upload the files

lftp <<EOF
open -u user,pass ftp2
lcd $programa_dir
mirror -R
bye
EOF

O comando mirror -R não reconhece que apenas alguns arquivos não existem no diretório remoto do segundo ftp.

Existe uma maneira de corrigir isso? Eu preciso apenas verificar o nome do arquivo, não a criação ou a hora da modificação dos arquivos.

Para o segundo FTP eu tentei

lftp <<EOF
open -u user,pass ftp2
mput $programa_dir/* -O /
bye
EOF

O resultado foi o mesmo - lftp carrega todos os arquivos, não só os não existentes.

    
por ispasov 28.10.2013 / 13:51

2 respostas

0

Eu não tenho acesso ao LFTP no momento, mas suspeito que você esteja procurando pelo --only-missing param, que só pode ser usado com mirror .

Tente isto:

lftp <<<EOF
open -u user,pass ftp2
mirror --reverse --only-newer $programa_dir/* /
bye
EOF
    
por 21.11.2014 / 10:50
0

Se você adicionar o conjunto xfer:clobber off; ao script do comando lftp, ele evitará sobrescrever arquivos existentes.

    
por 24.08.2016 / 21:42