我有兴趣通过互联网从一台服务器到另一台计划复制和发送大文件。 这些服务器不在同一个networking上。
我不知道解决这个问题的所有可用选项,但是我熟悉的几个协议/规范对于这个任务可能是有用的,(1)FTP和(2)bittorrent。
我以前使用过Filezilla来手动发送服务器组之间的大文件。 没有该特定FTP应用程序的调度function,所以它不足以满足我的调度要求。 理想情况下,我想使用更多的程序化(非基于GUI)来完成这项任务,而不是专有的(如付费应用程序)。
我已经在使用在一组服务器上执行其他操作的定时运行的Python脚本。 服务器正在运行Windows ,脚本通过Windows任务计划程序自动执行。 如果我可以通过FTP使用Python发送文件,这对我来说是非常理想的,因为我可以把FTP代码放到我已经工作和预定的地方。 但是,我简单地尝试了Python的“ftplib”,并且无法做到正面或反面。 所以,在我尝试走下这条路之前,我想先在这里发帖。
我不确定是否应该采用基于FTP的方法,所以我想就此提出一些build议。 另外,我并不在意使用什么编程语言来完成这个任务,尽pipe我会略微偏好Python,因为这似乎是一个自然的select,因为我正在处理服务器端脚本。 我也想就此提出build议。
因为这是我的第一个serverfaultpost,你可能会想象我对上面提到的很多主题都毫无头绪。 提前致谢。
我会开始说,你会想避免FTP和Bit Torrent。 当许多人拥有你喜欢的文件,下载可以在所有文件中进行分配(例如,快速下载一个linux ISO)时,Bit Torrent就是一项很棒的技术。 我不会推荐它用于简单的站点A到站点B的传输。
FTP在很大程度上被认为是过时的,因为它是不安全的。 所有这些信息都以明文forms传输,并且可能正在监听您的stream量。 您将希望通过安全通道完成此传输。
为此,您有几个选项来encryption您的传输。
我会build议以下
这可能是我可以推荐的最简单的方法。 您的另一个select是与远程机器build立VPN,并简单地写一行脚本,将文件从本地服务器复制到远程服务器。
欢迎来到SF。
只需使用任何脚本化的Windows FTP(或更好的FTPS或SFTP)客户端。
例如,正如接受的答案已经表明的那样, WinSCP同时支持脚本和FTP / FTPS / SFTP。
请参阅自动将文件传输到FTP服务器 。
使用WinSCP上传文件的简单batch file如下所示:
winscp.com /log=c:\path\ftp.log /command ^ "open ftp://user:[email protected]/" ^ "put c:\local\path\* /remote/path/" ^ "exit"
您可以让WinSCP GUI为您生成batch file 。
对于计划,只需使用Windows计划程序。
有关详细信息,请参阅将文件传输到FTP服务器
(我是WinSCP的作者)
对于基于Windows的解决scheme,我build议查看TeraCopy( http://codesector.com/teracopy/ )。 它的工作速度明显快于Windows副本,支持暂停/恢复,并在连接断开时重试。
有命令行参数可用,因此您可以通过batch file或Powershell脚本传输然后通过Windows任务计划程序。
我也不推荐FTP。 它不是防火墙友好的,恢复上传可能需要FTP服务器端的特殊configuration。