自动化 ftp 过程的最佳方法是什么?我的意思是是否可以编写一个脚本,当执行该脚本时,它会通过 ftp 连接到远程系统并获取文件,而无需人工干预。
请提出建议。
答案1
答案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默认登录匿名密码[电子邮件保护]
笔记:
- init 宏定义后面的两个空行很重要,
- 这还会自动与 remote-host1 建立交互式 ftp 会话。
您的脚本可以创建网络资源中心在调用 ftp 之前保存文件。