微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash脚本中的FTP上传

如何解决bash脚本中的FTP上传

我尝试编写一个 bash 脚本,通过 ftp 连接将文件上传到 IP 地址,但我遇到了问题或类似问题。我有一个包含很多行的 .txt 文件。每一行都有一个IP地址,没有别的只是IP地址。所以我想从文本文件中读取 ip 地址并将其用作变量。这是我丑陋的代码

#!/bin/bash


input="example.txt";

user="admin"
pass="12345678"    
filename="example.src"

while IFS= read -r line; do

  connection

done < $input

connection(){
ftp -i -n $line 

user $user $pass

put $filename

bye

}

使用第一个 ip 地址在第一行连接和上传成功,但其他行出现如下错误

Login incorrect
Login Failed.
Please login with USER and PASS
Passive mode refused.

解决方法

ftp 的命令可以写在 here-document 中。

#!/bin/bash

connection(){
ftp -i -n $line << EOS
user $user $pass
put $filename
bye
EOS
}

input="example.txt";

user="admin"
pass="12345678"    
filename="example.src"

while IFS= read -r line; do

  connection

done < $input

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。