2015-06-04 49 views
0

我要寻找的最佳优化的方式,我们可以使用大的日志文件从本地路径转移到NFS路径。最好的办法从本地路径文件传送到NFS路径

这里的日志文件将继续随时间动态变化。我目前使用的是什么

是一个java工具,它会读取来自本地路径的文件,将其转移到NFS路径。但是这似乎正在浪费时间。

我们不能使用拷贝命令,日志文件越来越具有更多新日志追加。所以这是行不通的。

我所寻找的是..难道还有比使用Java工具,它会从本地路径传输日志文件的细节,NFS路径以外的任何方式。

在此先感谢!

+0

不清楚你在问什么。如果受限于网络速度,您可以尝试使用一些快速压缩/解压缩。如果不是,普通的'cp'有什么问题? – keltar

+0

@keltar plz找到更新的查询..让我知道如果它仍然不清楚。 –

回答

0

如果你的网络速度比数增长速度高,你可以cp src dst

如果日志增长太快,你无法将如此多的数据,但只想把当前快照,我看到三个选项:

  1. 就像你现在读整个文件到内存中,就像现在一样,然后将其复制到目标。使用大型日志文件可能会导致非常大的内存占用。需要特殊的实用程序 tmpfs。
  2. 制作文件的本地副本,然后将此副本移到目标位置。非常明显。要求您有足够的可用空间并增加存储设备压力。如果临时文件在tmpfs中,这与第一种方法完全相同,但不需要特殊工具(仍然需要内存和足够大的tmpfs)。
  3. 取当前文件大小并仅复制该数据量,忽略在复制期间将追加的任何内容。

例如为:

dd if=src.file of=/remote/dst.file bs=1 count=`stat -c '%s' src.file` 

stat采用当前文件大小,然后这个dd指示只复制的字节量。

由于低bs,有更好的表现,你可能需要将其与另一dd结合:

dd status=none bs=1 count=`stat -c '%s' src.file` | dd bs=1M of=/remote/dst.file 
+0

谢谢..会尝试这个建议。 –