
celfs
(usa Ubuntu)
Enviado em 27/04/2021 - 16:56h
Pessoal boa tarde, tenho um script que busca um arquivo em uma maquina remota, porem esta dando erro quando executo o script
#!/usr/bin/expect -f
cd /home/
#parametros de entrada
set host "10.10.10.1"
set user "cdr"
set passw "password"
set file "aster*.txt"
# procedure de conexao; return 0 if OK, 1 erro
proc connect {passw} {
expect {
"Senha:" {
send "$passw\r"
expect {
"sftp*" {
return 0
}
}
}
"*assword:" {
send "$passw\r"
expect {
"sftp*" {
return 0
}
}
}
}
# timed out
return 1
}
#faz a chamda do sftp
spawn sftp $user@$host
#faz a chamada da procedure de conexao
set rez [connect $passw]
if { $rez == 0 } {
set timeout -1
send "get -p $file\r"
send "rm $file\r"
send "quit\r"
expect eof
puts "\n"
exit 0
}
exit 1
Uso normalmente, mas esta dando o erro:
[root@issabel cdr]# sh sftp-emater.sh
sftp-emater.sh: line 19: proc: comando não encontrado
sftp-emater.sh: line 20: expect: comando não encontrado
sftp-emater.sh: line 21: Senha:: comando não encontrado
sftp-emater.sh: line 22: send: comando não encontrado
sftp-emater.sh: line 23: expect: comando não encontrado
sftp-emater.sh: line 24: sftp*: comando não encontrado
sftp-emater.sh: line 25: return: can only `return' from a function or sourced script
sftp-emater.sh: line 26: erro de sintaxe próximo do `token' não esperado `}'
sftp-emater.sh: line 26: ` }'