Mantenha uma conexão lftp aberta enquanto faz outras coisas

0

Existe alguma maneira de abrir uma conexão a um servidor ftp com lftp, enviar um comando (ls por exemplo), analisar os resultados e depois enviar outro comando sem fechar o soquete de controle. Em outras palavras, quero fazer isso:

lftp -e ls > > somefile

analise algum arquivo

lftp -e outro comando

Mas eu não quero ter que autenticar novamente e abrir uma nova conexão para o segundo comando lftp. Existe alguma maneira de fazer isso?

    
por Salazar 16.02.2016 / 01:46

1 resposta

0

A boa notícia é que você pode, o ruim é que não do jeito que você deseja.

Para não precisar se autenticar novamente, você deve permanecer na mesma sessão lftp. Isso significa que você não deve sair do lftp para analisar. Mas depois de ter escrito a saída de ls para um arquivo, você pode chamar um comando shell para fazer isso, e se você organizar bem sua saída, você pode continuar a usá-lo como um comando.

$ lftp -u sgombai  -e 'ls >/tmp/ls.log; source -e script_to_give_valid_lftp_cmd.sh' myhost

script_to_give_valid_lftp_cmd.sh deve escrever um comando lft válido (ou talvez mais, eu não testei) como get / mget / put / ... algo para a saída padrão. O lftp captura essa saída e a executa como se ela fosse digitada.

Como alternativa, você pode chamar um comando shell que analisará e gravará a lista de comandos para execução em um arquivo. Então você pode fornecer (executar) esse arquivo.

$ lftp -u sgombai  -e 'ls >/tmp/ls.log; !script_to_write_lftp_cmd_list.sh > lftp_cmd.lst; source lftp_cmd.lst' myhost
    
por 16.02.2016 / 11:14

Tags