2013-05-04 7 views
1

Я пытаюсь передать файл с одного сервера на удаленный сервер с помощью SFTP. Клиент не готов к настройке ключа, поэтому . Я рассмотрел другие вопросы на этом форуме, связанные с SFTP, и попробовал все. Но все же он не работает в моем случае.SFTP-запрос пароля, хотя пароль в скрипте

Мой Сценарий: -

#!/bin/sh 
# sample automatic ftp script to dump a file 
USER="username" 
PASSWORD="password" 
HOST="hostname" 
sftp [email protected]$HOST << EOF 
$PASSOWRD 
cd test_path 
put test_file.txt 
quit 
EOF 

ответ

8

У вас есть опечатка в сценарии - вы пишете $ PASSOWRD вместо $ PASSWORD, поэтому он заменяет пустую строку.

2

Вы можете сделать это, используя expect. Это очень легко и просто;

#!/usr/bin/expect 
spawn sftp <userid>@<server> 
expect "password:" 
send "<password>\n" 
expect "sftp>" 
send "cd <remot dirctory>\r" 
expect "sftp>" 
send "mput * \r" 
expect "sftp>" 
send "quit \r" 
1

Попробуйте следующие шаги,

lftp -u $user,$passwd sftp://$host << --EOF-- 
cd $directory 
put $srcfile 
quit 
--EOF--