2012-07-31 2 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

+1

그리고 "파일이 열리지도 않습니다"라는 말은 무엇입니까? – ikegami

+0

나는 암호로 인해 유감스럽게도 스크립트 실행에 대해 아무런 진전이 보이지 않습니다. 스크립트가 응답을 멈추었으므로 실행을 중단했습니다. – maxjuoy

답변

1

실제로 프로그램에서 나중에 주장하는 것보다 차단하고 있습니다. 특히 $inFile에서 핸들이 EOF를 반환 할 때까지 읽는 위치를 차단합니다. 따라서 ssh이 종료되는 이유는 tail이 종료 될 때입니다. tail -f이 종료되지 않으므로 (신호로 종료되지 않는 한) 종료하지 않습니다. 그래서 cat으로 전환하는 것이 효과적입니다.

관련 문제