O comando ftp
não tem funcionalidade para permitir a verificação da transferência bem-sucedida. Se você precisar continuar usando essa implementação de transferência por FTP, duas alternativas são:
- Faça o download do arquivo transmitido para um local temporário e compare-o por byte com a origem.
- Execute
ls
no cliente FTP e verifique se o tamanho do arquivo corresponde às expectativas. Tenha em mente quels
depende do servidor e pode variar da implementação do servidor à implementação.
A melhor solução (além de substituir o FTP inteiramente por rsync
ou scp
) é usar um cliente FTP diferente que forneça um status de transferência confiável.
#!/bin/bash
tar czf <sourcefile> --directory=<directory> log
lftp -u '<user>,<password>' -e 'put -E <source> -o <target>; quit' "$1"
O comando lftp
deve estar disponível na maioria das distribuições Linux. O -E
flag configura o comando put
para agir mais como mv
em vez de cp
: ele exclui o arquivo de origem após uma transferência bem-sucedida.