自动化 FTP 流程

自动化 FTP 流程

自动化 ftp 过程的最佳方法是什么?我的意思是是否可以编写一个脚本,当执行该脚本时,它会通过 ftp 连接到远程系统并获取文件,而无需人工干预。

请提出建议。

答案1

我个人使用lftp,具有高度的脚本化(参见教程)。

当然,您也可以使用 perl/ruby/python/您首选的脚本语言编写一个适配的 FTP 客户端。

答案2

我认为你可以使用 wget 来做这样的事情:

WGET 是免费的,因此你可以获取它并查看帮助文件

就像是:

wget -user=username -pass=password ftp://ftp.moose.com/download.zip

显然可以与脚本中的变量一起使用等等。

刚刚注意到这是针对 solaris 的,因此不确定是否可行。

答案3

有用于此目的的 Perl 包。例如 CPAN 模块网络::精简版::FTP网络::FTP

它将允许您的脚本根据来自服务器的信息做出决定。例如,如果文件名不是恒定的(可能包含日期或版本号),则脚本可以在决定下载哪个文件之前处理目录列表。

我已成功地使用它来自动下载/更新大型分子序列数据库。

答案4

Solarisftp命令可以通过 netrc(4) 文件自动执行。macdef初始化是关键。示例:

cat ~/.netrc
machine remote-host1.domain.com login my-ftp-account
密码 password4host1
macdef init
cd
/pub/DOWNLOAD get readme

默认登录匿名密码[电子邮件保护]

笔记:

  1. init 宏定义后面的两个空行很重要,
  2. 这还会自动与 remote-host1 建立交互式 ftp 会话。

您的脚本可以创建网络资源中心在调用 ftp 之前保存文件。

相关内容