Проблема с запуском команд из сценария оболочки

Я пытаюсь скопировать файлы с удаленного сервера Windows на сервер Unix. Мне удалось скопировать файлы с сервера Windows с помощью командной строки, но когда я запускаю эти команды из сценария, он работает не так, как ожидалось.

используемые команды:

sftp user@remoteserver.com

lcd local_dir

cd remote dir

get file_name

exit

Когда я запускаю эти команды из сценария, сценарий останавливается после подключения к удаленному серверу.

Кто-нибудь может сказать мне, как решить эту проблему.

1 ответ

Решение

Команды lcd в exit являются sftp команды, так что вы не можете просто записать их в сценарий построчно, но должны перенаправить их как sftps stdin:

 # all lines till "EOF" will be redirected to sftp
 sftp user@remoteserver.com <<- EOF
 lcd local_dir
 cd remote dir
 get file_name
 exit
 EOF

 # here you are in your shell script again, eg:
 SFTPRES=$?
Другие вопросы по тегам