Scripts simples de sftp
como o seu são bons para buscar scripts rápidos e sujos, mas são um desastre esperando para acontecer quando você os usa para também excluir arquivos (especialmente exclusões curinga).
Um perigo muito óbvio com o script é que mdelete *
excluirá não apenas os arquivos que estavam no diretório quando você executou mget -r *
, mas também tudo o que foi carregado no diretório de origem após ter iniciado o mget
- até arquivos que não foram incluídos no mget
.
Existem várias outras alternativas (mais seguras) para você. Aqui estão dois:
-
Use sshfs para montar o diretório sftp em algum lugar do sistema. Então você pode usar comandos unix padrão como
cp
,mv
,rm
,rsync
etc para mover arquivos. Esta é de longe a sua melhor opção. -
Escreva um programa em uma linguagem que tenha uma biblioteca sftp (por exemplo, perl ou python. e os idiomas compilados mais atuais e atuais também) para se conectar ao servidor remoto e:
- obtenha uma lista de arquivos para transferir
- para cada arquivo:
- faça o download
- validar de alguma forma (por exemplo, como @thrig sugerido com um arquivo md5sum ou similar)
- se estiver tudo bem, exclua-o do servidor remoto