sftp assistência de arquivo em lote

0

Eu tenho um script sftp e estou tentando conectar um diretório sftp e copiar arquivos em minha máquina local. Eu o diretório sftp remoto eu tenho um arquivo 'note.lst' esse arquivo contém o nome do arquivo que eu preciso para importar do ftp para o diretório local.

 sftp
 cd  /root/ftp1
 lcd /root/foleder1
 cat note.lst > ${2}
 mget ${2}
 bye

Na linha de comando acima eu estava tentando catar o arquivo de lista e mover os dados do cat o / p para a variável $ {2} e mget-los.

A abordagem abaixo não está funcionando. Qualquer um pode me ajudar.

Obrigado.

    
por Rak kundra 25.10.2017 / 19:38

1 resposta

3

Você provavelmente desejará dividir isso em duas operações: uma para buscar a lista e outra para buscar os arquivos listados.

# Fetch the list
scratch=$(mktemp -d)
trap "rm -fr $scratch" EXIT
scp user@host:/root/ftp1/note.lst $scratch/filelist.txt
# transmogrigy the list into the SFTP script:
awk 'BEGIN{ print "lcd /root/foleder1"; print "cd /root/ftp1" } { print "get \"" $0 "\"" }' > $scratch/script.sftp
# execute the SFTP script
sftp -b $scratch/script.sftp user@host
    
por 25.10.2017 / 20:09

Tags