2012-03-08 4 views
3

나는 perl에서 scp 명령을 자동화하는 다음 프로그램을 작성했습니다.expect 모듈이 작동하지 않는 scp

#!/usr/bin/expect 
spawn scp [email protected]:/home/hscpe/output.txt imt 
set pass "jujsa32s" 
expect { 
     password: {send "$pass\r"; exp_continue 
    } 

그러나 파일 전송이 일어나지 않습니다. 콘솔에서 정상적으로 동일한 scp 명령을 시도하면 정상적으로 작동합니다. 누구든지 문제를 찾아 낼 수 있습니까?

미리 감사드립니다 !! ..

+0

오류가 무엇을 얻고 있는가? –

답변

2

사용 Net::OpenSSH :

my $ssh = Net::OpenSSH->new('[email protected]', password => 'jujsa32s'); 
$ssh->scp_get('/home/hscpe/output.txt', 'imt/output.txt'); 
+1

정말 감사합니다 :) :) ... 정말 효과가 있습니다 !! – user650521

0

암호를 사용하고 있습니다.
이 작업에는 expect.pm을 사용해야합니다. perl 스크립트를 실행할 때 사용되는 환경은 기대되는 부분을 실행하지 못할 수 있습니다.

0
당신은 bash는 스크립트에서 "sshpass"를 사용한다

:

#!/bin/bash 
sshpass -p "password" scp -r [email protected]:/some/remote/path /some/local/path 
관련 문제