A solução mais simples é cd
no diretório em que você deseja salvar os arquivos e, em seguida, executa o script expect, deixando de fora o comando lcd
do script na linha 8.
Eu tenho um cron no meu servidor Ubuntu que executa este script bash diariamente:
#!/usr/bin/expect -f
spawn sftp user@ip
expect "password:"
send "password\n"
expect "sftp>"
send "cd remote_directory\n"
expect "sftp>"
send "lcd ~/dtc/data/outstanding\n"
expect "sftp>"
send "mget * \n"
expect "sftp>"
send "exit\n"
interact
Ele se conecta a um servidor remoto via SFTP e baixa vários arquivos. Isso não está funcionando, no entanto, eu quero que esses arquivos apareçam em um determinado diretório na máquina (meu servidor) executando este script.
Isso é o que eu estou tentando fazer na linha 8 sem sucesso. Como posso executar este script através do cron e me certificar de que ele esteja no diretório correto do meu servidor para que ele coloque os arquivos baixados no diretório correto?
A solução mais simples é cd
no diretório em que você deseja salvar os arquivos e, em seguida, executa o script expect, deixando de fora o comando lcd
do script na linha 8.
Tags bash sftp cd-command shell-script