ssh在perl中打开远程机器上的文件

时间:2012-07-31 16:43:22

标签: perl text ssh

我遇到了使用Perl ssh到远程计算机并在该计算机上打开文本文件的问题。我目前正在跟踪文件,如下所示,

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也无济于事。如果我能得到一些帮助,那就太好了。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

您实际上在程序后期阻止的程度超过您的声明。具体来说,您阻止从$inFile读取的位置,直到句柄返回EOF,这就是ssh退出的原因,即tail退出的原因。由于tail -f永不退出(除非被信号终止),否则您永远不会退出。这就是切换到cat的原因。