На моем сервере Ubuntu есть cron, который ежедневно запускает следующий bash-скрипт:
#!/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
Он подключается к удаленному серверу через SFTP и скачивает кучу файлов. Это работает без проблем, однако я хочу, чтобы эти файлы появились в определенном каталоге на машине (моем сервере), на которой запущен этот скрипт.
Это то, что я пытаюсь сделать в строке 8, но безуспешно. Как мне запустить этот скрипт через cron и убедиться, что он переходит в нужный каталог на моем сервере, чтобы поместить загруженные файлы в нужный каталог?
решение1
Самое простое решение — перейти cd
в каталог, в котором вы хотите сохранить файлы, а затем запустить скрипт expect, исключив lcd
команду из скрипта в строке 8.