【问题标题】:diffing linux and solaris files to local windows file over ssh/scp通过 ssh/scp 将 linux 和 solaris 文件与本地 windows 文件进行比较
【发布时间】:2014-07-17 05:49:41
【问题描述】:

有两台远程机器,一台使用redhat linux,另一台使用solaris。每个文件都有一个每天轮换的文件(比如 /var/log/events.log),大小可以从 0 字节到 400Mb 并且不断更新。还有第三台使用 windows xp 的机器,它应该监视该文件的更新,该文件当前由一个 ssh 会话完成,该会话使用 putty 和 tail -f /var/log/events.log 在其中运行。

应该如何做有一些限制:

  1. 除了 SSH 和 SCP 之外,我无法使用任何东西进行远程访问。
  2. 解决方案必须要求在远程服务器上安装、存储或永久运行任何东西;它应该通过单次连接尝试运行。
  3. 它应该对网络负载的影响最小,接近远程执行的 tail -f

我查看了 diffing 通常是如何完成的,并了解了 rsync。不幸的是,solaris 服务器没有安装它,并且在 redhat 服务器上,我没有启动它的权限。

有什么想法吗?

【问题讨论】:

  • 您的问题是什么?您似乎在第一段中描述了您的解决方案。
  • 我需要自动执行此操作以根据尾部捕获的内容生成事件,因此我需要同步远程和本地输出。此外,tail -f 不符合 pt.2,在“不需要任何东西在远程服务器上永久运行”部分。我需要得到与使用 tail -f 相同的结果,但自动且无需持续维护会话。
  • 那么您的具体问题是什么?您需要通过 ssh 从远程系统复制文件,而您没有 rsync? sftp 或 scp 怎么样?
  • 文件太大,无法复制,需要diff一下。

标签: linux windows ssh diff


【解决方案1】:

问题比较老了,不过好像你想用rsync

根据维基百科:

rsync 是一个用于类 Unix 系统的文件同步和文件传输程序,它使用一种称为 rsync 算法的增量编码形式来最小化网络数据传输。

因此您可以通过它们的差异来同步文件,从而节省大量带宽和时间。

官方rsync页面是here

【讨论】:

  • 不幸的是,rsync 需要安装在远程机器上。那不行:我需要一个命令行实用程序,它将通过 ssh 连接,然后将目标文件大小与本地文件大小进行比较,然后下载差异。例如,我在本地机器上有 c:\messages,在远程机器上有 /var/log/messages。我需要通过 ssh 或 scp 连接到远程机器,检查 /var/log/messages 是否与本地 c:\messages 不同,然后,如果远程文件的大于本地,使用添加的任何内容更新本地,无需重新下载整个文件。
  • 诀窍是,必须在远程计算机上不安装或以其他方式永久存储任何东西的情况下完成。
猜你喜欢
  • 1970-01-01
  • 2016-04-07
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 2018-08-21
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多