首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跟踪远程文件?

如何跟踪远程文件?
EN

Stack Overflow用户
提问于 2009-02-19 16:30:26
回答 8查看 30.2K关注 0票数 47

我正试图找到一种好的方式来跟踪远程主机上的文件。这是在Linux机器的内部网络上。所需经费如下:

  1. 必须有良好的行为(不需要额外的进程,或持续的输出)
  2. 不能要求某人的宠物Perl模块。
  3. 可以通过Perl调用。
  4. 如果可能的话,不需要在远程机器上自定义构建脚本或实用程序(常规linux实用程序是可以的)

我尝试过的解决方案一般都是这样的。

代码语言:javascript
复制
ssh remotemachine -f <some command>

“某些命令”是:

代码语言:javascript
复制
tail -f logfile

基本尾不工作,因为远程进程在本地ssh进程死后继续向终端写入输出。

代码语言:javascript
复制
$socket = IO:Socket::INET->new(...);
$pid = fork();
if(!$pid)
{
  exec("ssh $host -f '<script which connects to socket and writes>'");
  exit;
}

$client = $socket->accept;
while(<$client>)
{
  print $_;
}

这样做更好,因为在本地进程退出后,屏幕上没有输出,但是远程进程没有发现它的套接字已关闭,并且它无限期地继续存在。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-02-19 17:05:16

你试过吗

代码语言:javascript
复制
ssh -t remotemachine <some command>

来自ssh手册页的-t选项:

代码语言:javascript
复制
 -t      Force pseudo-tty allocation. This can be used to execute 
         arbitrary screen-based programs on a remote machine, which
         can be very useful, e.g. when implementing menu services.
         Multiple -t options force tty allocation, even if ssh has no local tty.

而不是

代码语言:javascript
复制
 -f      Requests ssh to go to background just before command execution.  
         This is useful if ssh is going to ask for passwords or passphrases, 
         but the user wants it in the background.
         This implies -n.  The recommended way to start X11 programs at a remote
         site is with something like ssh -f host xterm.
票数 75
EN

Stack Overflow用户

发布于 2009-02-19 16:38:33

一些想法:

  • 您可以通过NFS或CIFS挂载它,然后使用档案::尾部
  • 您可以使用Perl的一个SSH模块(其中有许多模块),并结合使用tail -f
票数 2
EN

Stack Overflow用户

发布于 2010-02-20 22:44:20

不过,您只可以尝试Survlog它的OS。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/566110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档