在 bash 脚本中进行 FTP 上传

Posted

技术标签:

【中文标题】在 bash 脚本中进行 FTP 上传【英文标题】:FTP upload in bash script 【发布时间】:2021-02-24 10:15:38 【问题描述】:

我尝试编写一个 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.

【问题讨论】:

@MartinPrikryl 对不起:/ 【参考方案1】:

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

【讨论】:

你能解释一下“here-document”是什么意思吗? :D 我有点新 “here-document”表示我的脚本中从“tldp.org/LDP/abs/html/here-docs.html”。

以上是关于在 bash 脚本中进行 FTP 上传的主要内容,如果未能解决你的问题,请参考以下文章

使用 bash 脚本批量重命名 FTP 服务器上的文件

数据库备份文件上传到ftp服务器脚本

shell脚本:检查ftp日志存储服务器上的日志是否正常上传

ftp服务搭建脚本和客户端ftp自动上传脚本

老男孩教育每日一题-第95天-shell脚本知识点:书写脚本完成ftp上传下载

shell脚本:nginx访问日志切割与打包上传