Tengo un cron en mi servidor Ubuntu que ejecuta 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
Se conecta a un servidor remoto a través de SFTP y descarga un montón de archivos. Esto no funciona, sin embargo, quiero que estos archivos aparezcan en un directorio determinado en la máquina (mi servidor) que ejecuta este script.
Esto es lo que intento hacer en la línea 8 sin éxito. ¿Cómo puedo ejecutar este script a través de cron y asegurarme de que se coloque en el directorio correcto de mi servidor para que coloque los archivos descargados en el directorio correcto?
Respuesta1
La solución más sencilla es cd
ingresar al directorio donde desea guardar los archivos y luego ejecutar el script esperado, omitiendo el lcd
comando del script en la línea 8.