2012-07-31 60 views
0

我遇到了远程机器上的ssh问题,并使用Perl在该机器上打开了一个文本文件。我目前正在拖尾文件,如下所示,ssh在perl上打开远程机器上的文件

my $remote_filename = '/export/home/fsv/sample.txt'; 
my $remote_host = 'bs16-s1.xyz.com'; 

my $cmd = "ssh -l $sshUser $remote_host tail -f $remote_filename |"; 

open $inFile, $cmd or die "Couldn't spawn [$cmd]: $!/$?"; 

连接超时,我看到该文件甚至没有接近打开。我尝试使用Net :: SSH和Remote :: FIle以及无济于事。如果我能在这方面得到一些帮助,那将是非常好的。

谢谢你的时间。

+0

究竟是什么问题? ssh超时?这与Perl有什么关系? – ikegami 2012-07-31 16:52:22

+1

“文件甚至无法打开”是什么意思? – ikegami 2012-07-31 16:54:30

+0

我对于神秘感很抱歉,我没有看到脚本执行的任何进展。自脚本停止响应以来,我已经中断了执行。 – maxjuoy 2012-07-31 16:58:19

回答

1

实际上,您在程序中稍后会阻止声明。具体而言,您会阻止从$inFile开始读取的内容,直到句柄返回EOF,这就是退出ssh的原因,即tail退出时的原因。由于tail -f永远不会退出(除非被信号终止),您永远不会退出。这就是为什么切换到cat工作。