1

我正在尝试使用 SFTP 将文件从一台服务器传输到远程服务器。客户端还没有准备好进行密钥设置,所以我已经在这个论坛上解决了与 SFTP 相关的其他问题并尝试了所有。但在我的情况下它仍然不起作用。

我的脚本:-

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

3 回答 3

9

您的脚本打印错误 - 您正在编写 $PASSOWRD 而不是 $PASSWORD,因此它会替换空字符串。

于 2013-05-04T08:53:13.573 回答
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"
于 2013-12-23T19:39:15.617 回答
1

试试下面的步骤,

lftp -u $user,$passwd sftp://$host << --EOF--
cd $directory
put $srcfile
quit
--EOF--
于 2014-06-25T10:10:36.333 回答