Проблема с запуском команд из сценария оболочки
Я пытаюсь скопировать файлы с удаленного сервера Windows на сервер Unix. Мне удалось скопировать файлы с сервера Windows с помощью командной строки, но когда я запускаю эти команды из сценария, он работает не так, как ожидалось.
используемые команды:
sftp user@remoteserver.com
lcd local_dir
cd remote dir
get file_name
exit
Когда я запускаю эти команды из сценария, сценарий останавливается после подключения к удаленному серверу.
Кто-нибудь может сказать мне, как решить эту проблему.
1 ответ
Решение
Команды lcd
в exit
являются sftp
команды, так что вы не можете просто записать их в сценарий построчно, но должны перенаправить их как sftp
s 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=$?