Comandos de upload do sftp sem senha não executados usando um shell script

2

Eu fiz a senha sftp menos usando a opção ssh -t key_gen e o prompt para senha não aparece mais, mas quando eu escrevo os comandos para serem executados na sessão sftp como o seguinte no shell script e executo eles não são executados em vez disso, é só pegar o prompt do sftp

#!/bin/sh

username=$1
ipaddr=$2
external_path=$3
extension=$4

sftp $username@$ipaddr
cd $external_path
get *.$extension
exit 

Result

sftp>

e nada mais

Poderia, por favor, dizer como isto pode ser conseguido, também a utilidade expect está lá na minha máquina, mas o sftp não suporta a opção -b

Obrigado Priyanka

    
por Priyanka 02.12.2010 / 05:53

1 resposta

2

sftp username @ ipaddress terá sftp entrando no modo interativo. (É por isso que você recebe um prompt de estilo sftp)

página man do sftp

Como você está usando a programação do sftp, deseja usá-lo no modo não interativo.

sftp $username@$ipaddr:$external_path/filename
#this would work except you need your wildcard * to be expanded

echo "get *" | sftp $username@$ipaddr:$external_path/
#This will work since you are piping the command get * into sftp. 
#* gets expanded by sftp and matching files in $external_path
#Are transfered to your current directory.
    
por 02.12.2010 / 06:06