Answers:
您想做的事,绝对可以通过FTP完成。从技术上讲,恢复中断的文件下载时,任何FTP客户端都会执行相同的操作。
尽管从用户角度来看,我不知道是否有任何FTP客户端支持仅给定数量的尾随字节的显式下载。
但是某些FTP客户端肯定会允许您下载以前下载的文件的新尾随内容。
特别是对于WinSCP,只需启动日志文件下载即可。然后,在“ 覆盖确认”提示上,选择“ 继续”(位于“ 否”按钮的下拉菜单中)。请注意,仅当源文件大于目标文件时,该选项显然可用。
如果您确实只想下载日志的最后几行,则可以在启动下载之前通过创建一个虚拟的本地文件来欺骗WinSCP,方法是创建一个虚拟的本地文件,其大小比日志文件小一些。
您还可以轻松实现上述技巧的自动化:
fsutil file createnew mylog.log 100000000
winscp.com /command "open mysession" "get -resume /path_to_log/mylog.log" "exit"
有关的替代方法fsutil
,请参见在Windows系统上快速创建大文件?
您可以花费更多的精力来修改脚本,以首先检查日志文件的大小,然后自动计算比日志大小小几千字节的虚拟文件大小。
我没有听说有任何软件可以满足您的需求。但是,如果您是程序员,那么寿应该了解如何在Perl中编写代码。
在这里,我找到了如何获取所有文件的示例。这不是您的解决方案,但可以帮助您了解如何做:http : //www.perlmonks.org/?node_id=907019
另一个,有关库Net :: FTP的帮助:http : //search.cpan.org/dist/libnet/Net/FTP.pm
使用此方法,您可以打开与服务器的ftp连接(第一个示例)进行授权(第一个示例)
第二个URL帮助您如何使用以下方法获取文件的最后一部分:-> ascii将传输模式设置为ascii,因为这是日志文件-> size(FILE)获取文件大小以计算应该从何处开始-> restart(WHERE)设置文件要从文件中开始读取的地方->读取(BUFFER,SIZE [,TIMEOUT])直接将小SIZE部分读取到BUFFER变量中
另一个功能:length(BUFFER)告诉您获得多少数据。如果是零,则可能已将EOF打印(“ $ BUFFER \ n”)简单的打印缓冲区内容显示到屏幕上
注意,这不是完全解决,而是一种方法。我编写全部内容的唯一原因可能是没有适合您任务的软件。
如果您不知道如何编写该程序,只需在stackoverflow.com而不是超级用户上询问。有很多准备帮助的程序员。
如果可能,请检查您的ftp站点是否支持恢复下载。Whithout文件的读取结束部分是不可能的。
另一部分解决方案可能是日志文件轮换,一天或一个小时一个文件。这取决于日志文件增长的速度。