sftp um arquivo usando o shell script

3

Eu li vários tópicos (que foram úteis) e ainda estou recebendo um erro ao tentar sftp um arquivo (o cliente quer que ele seja sftp'ed)

Aqui está o script:

#!/bin/bash 
HOST=XX.XX.XX.XX
PORT=XXXX
USER=root
FILE=/tmp/RANDY

/usr/bin/expect<<EOD

spawn sftp -o Port=$PORT $USER@$HOST
expect "sftp>"
spawn put $FILE
interact
EOD

O erro que estou recebendo é:

spawn sftp -oPort=XXXX [email protected]
Connecting to XX.XX.XX.XX...
sftp> spawn put /tmp/RANDY
couldn't execute "put": no such file or directory
    while executing
"spawn put /tmp/RANDY"

O arquivo existe e está no diretório correto.

    
por Randy 10.12.2012 / 19:58

2 respostas

3

O segundo spawn no seu script Esperar deve ser send , você deve citar o que está enviando para o processo gerado e deixou o CR (Carriage Return, também conhecido como Enter):

send "put $FILE\r"

Além disso, você provavelmente não deseja o comando interact . Isso provavelmente faz mais sentido em seu lugar:

expect "sftp>"
send "exit\r"
    
por 10.12.2012 / 20:23
0

onde a senha ou autenticação está acontecendo, com certeza você precisa autenticar primeiro e então você não deve receber o erro.

    
por 16.06.2016 / 10:19

Tags