Shell中未使用sftp命令发送文件

时间:2019-04-12 10:30:31

标签: bash sftp

我在使用shell bash命令自动发送文件时遇到问题。 我创建了一个文件,该文件将文件或文件列表发送到远程服务器。 问题是,当我手动执行此Shell时,我看不到任何错误,它使我“ send resullt is 0”,因此发送中没有错误。 这是我使用的shell程序

#!/bin/bash
echo "sending file to remote server"
#!/bin/bash
HOST=product.com
USER=web_production
PASSWORD=password
SOURCE_FILE=$1

for SOURCE_FILE in ` ls -al | grep file_doc-.* | awk '{print $9}'`
do
echo "Sending "$SOURCE_FILE;
/usr/bin/expect<<EOD
spawn sftp $USER@$HOST
expect "password:"
send "$PASSWORD\r"
expect "sftp>"
send "put $SOURCE_FILE"
expect "sftp>"
send "bye\r"
EOD

RETURN=$?
echo 

mv $SOURCE_FILE SENT/
done
echo "sending result to a remote sever is result="$RETURN
echo "sending file to remote server has ended"

是否有任何方法可以调试原因或知道为什么远程服务器没有收到任何文件,原因是我无权访问远程服务器在那里进行调试。 当我使用filezilla将文件发送到服务器时,它可以完美运行。 预先谢谢你。

0 个答案:

没有答案