批处理文件语法以从FTP服务器获取文件


0

我无法从FTP服务器获取所有文件。通常,我使用以下语法使用命令行/终端获取所有文件:(get a.txt非常非常浪费时间首先使用登录身份验证)

所以,我的期望是我想从FTP服务器上获取所有文件,并带有脚本(批处理),因此,我不会在终端/命令行上浪费时间。我只想运行脚本。当然,脚本中必须包含登录身份验证。我该怎么做?

Answers:


1

使用FTP客户端编写脚本脚本可以省去很多麻烦。下载ncftp,并使用它。

基本上:

ncftpget -R ftp://user:password@host/path/to your files

-R表示它进行递归传输



1

SCP

首先,我建议您通过FTP使用SCP。FTP不安全,以明文方式传输凭据和文件。本质上,SCP可以sc运行ssh并且相当安全,尤其是如果您使用密钥对进行身份验证。

SFTP

另一种选择是使用SFTP。尽管有名称,但它不是通过SSL或SSH连接的FTP。这是一个全新的协议。但是,与上述建议一样,这并不是对您的问题的确切答案,而只是对FTP的不安全性的一些评论。

的FTP

选择您的ftp客户端,然后研究其如何处理脚本。您没有提到正在使用的操作系统或正在使用的客户端。您需要提供这些信息,然后我们才能为您提供更多帮助。

您正在使用什么操作系统和FTP客户端?

编辑:我做了“批处理文件”等同于Windows环境的连接。在这种情况下,请尝试以下操作:

ftp.exe -s:filename

-s饲料ftp命令是其内具有FTP命令的文件。在ftp.exe读取的文件内,创建用于登录和检索文件的命令。

open ftp.server.name
user
[username]
[password]
get *.txt
quit

有关FTP和批处理文件的更多信息,请参见Microsoft KB文章

如果您使用的是Linux,则可以在选择的Shell中使用大量FTP客户端。与FTP服务器建立连接时,您可以选择提供用户名和密码以及客户端自己指定的各种开关。FTP URL中用户名和密码的标准语法是ftp://user:password@host.tld/

从此处使用get通配符命令在脚本中的新行将下载所需的所有文件。例如,get *.txt但是,建议您使用getmulting文件和镜像目录的确切语法取决于您的FTP客户端。我的喜好是ncftp与其他FTP客户端具有不同的镜像选项。

柏油

作为奖励,我建议首先对要减少传输大小的文件进行归档,并保留UNIX权限。FTP会从文件中剥离原始权限,这在恢复网站或应用程序时可能会很烦人。

但是,除非FTP服务器本身支持扩展命令,否则通常无法通过FTP客户端完成此操作。例如,FTP服务器ncftpd提供了一些其他FTP服务器没有的扩展命令。因此,现在我可以全面建议您设置SSH隧道,以便可以首先将目录tar。通过设置SSH守护程序,您最好将SCP插入服务器并检索TAR文件,而不要使用FTP。

如果必须将FTP保留在等式中,则可以在服务器上创建cron作业,以将所需文件打包,将其放在FTP目录中,然后创建连接到服务器的FTP脚本并检索tar文件。

自动化是您的朋友。您走在正确的道路上,只需开始更多地考虑安全性和优化。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.