我遇到了使用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也无济于事。如果我能得到一些帮助,那就太好了。
感谢您的时间。
答案 0 :(得分:1)
您实际上在程序后期阻止的程度超过您的声明。具体来说,您阻止从$inFile
读取的位置,直到句柄返回EOF,这就是ssh
退出的原因,即tail
退出的原因。由于tail -f
永不退出(除非被信号终止),否则您永远不会退出。这就是切换到cat
的原因。