我正在尝试使用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
答案 0 :(得分:9)
你的脚本中有一个印刷错误 - 你正在编写$ PASSOWRD而不是$ PASSWORD,所以它替换了空字符串。
答案 1 :(得分: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"
答案 2 :(得分:1)
尝试以下步骤,
lftp -u $user,$passwd sftp://$host << --EOF--
cd $directory
put $srcfile
quit
--EOF--