如何通过ftp传输多个文件?
我有两台unix服务器,需要在其中ftp一些文件。 目录结构几乎相同,只是略有不同,如:如何通过ftp传输多个文件?,ftp,Ftp,我有两台unix服务器,需要在其中ftp一些文件。 目录结构几乎相同,只是略有不同,如: server a server b miabc/v11_0/a/b/c/*.c miabc/v75_0/a/b/c/ miabc/v11_0/xy/*.h miabc/v11_0/xy/ 有许多模块: miabc mfabc 除了11_0和75_0之外,它们内部的目录结构在这两个服务器中都是相同的。而不同模块中的目录结构是不同的 如何使用FTP通过awk
server a server b
miabc/v11_0/a/b/c/*.c miabc/v75_0/a/b/c/
miabc/v11_0/xy/*.h miabc/v11_0/xy/
有许多模块:
miabc
mfabc
除了11_0和75_0之外,它们内部的目录结构在这两个服务器中都是相同的。而不同模块中的目录结构是不同的
如何使用FTP通过awk、Perl、shell、ksh等脚本语言将所有模块中的所有文件FTP到第二台服务器b中的相应模块中?我想说,如果要使用Perl,必须使用Net::FTP 有一次,我需要一个脚本来区分FTP上的目录/文件结构 本地硬盘上具有相应目录/文件结构的服务器, 这让我开始写作。我不知道它是高效的还是优雅的,但你可能会发现其中之一 这里面有一个想法
hth/Rene我建议您可以先登录任何一台服务器,然后转到适当的路径miabc/v75_0/a/b/c/。从这里开始,您需要对另一台服务器执行sftp
我将使用、和递归函数的组合来遍历目录结构。如果文件系统支持符号链接或硬链接,我将使用简单的
wget
来镜像ftp服务器。在其中一种情况下,当您在设置时,只需将目录v11\u 0
指向75\u 0
,wget就不会知道其中的区别
服务器a:
ln-s/project/serverb/miabc/75_0/project/servera/v11_0
不要让项目变得比需要的更难:阅读wget上的文档和ln。如果wget不遵循符号链接,请提交错误报告,如果您的FS支持,请使用硬链接。听起来您确实需要rsync。在解决这个问题时,我会尽量避免任何编程。请参阅您需要使用要发送文件的目录的正确路径。 您可以使用php创建小脚本。 php提供了很好的ftp功能。使用php,您可以轻松地ftp文件。但在此之前,请检查IIS服务器或文件zilla的ftp设置 我使用以下代码在ftp上发送文件,这是在php中:-
这段代码仅供参考,在使用之前请先阅读php手册。@sachin…我知道如何使用ftp,但问题是在多个目录中有1000个文件。因此,访问每个目录并执行mget是一项非常困难的任务。我不知道投票否决我的原因。很高兴知道。但是,如果您有一个所有目录的绝对路径列表,那么这种方法将在ls countRysnc上的for循环中工作。snc并不能从根本上解决合并/不同/目录结构的问题。它只是一种更高效的传输方式,根据问题的不同,它不是一种不同的目录结构。它们只是有一个不同的基本目录。在这种情况下,我一直使用rsync。
$conn_id = ftp_connect($FTP_HOST) or die("Couldn't connect to ".$FTP_HOST);
$login_result =ftp_login($conn_id, $FTP_USER, $FTP_PW);
ftp_fput($conn_id, $from, $files, $mode) // ths is the function to put files on ftp