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 está funcionando sem problemas, porém, quero que esses arquivos apareçam em um determinado diretório na máquina (meu servidor) executando este script.
Isso é o que estou tentando fazer na linha 8 sem sucesso. Como posso executar esse script via cron e garantir que ele seja colocado no diretório correto no meu servidor para que ele coloque os arquivos baixados no diretório correto?
Responder1
A solução mais simples é cd
entrar no diretório onde você deseja salvar os arquivos e então executar o script expect, deixando de fora o lcd
comando do script na linha 8.