2014-12-11 6 views
-2

나는 SO 게시물에서 많은 PHP 스크립트를 복사 해 보았습니다. Centos를 실행하는 서버에서 파일을 다운로드하려고합니다. psftp (퍼티)를 통해 수동으로 로그인하고 파일을 복사 할 수 있습니다. 그러나 나는 그 과정을 자동화하고 싶다. 그러므로 스크립트가 필요하다.이 스크립트는 로컬 디스크에 파일을 복사합니까?

Windows에서 실행되는 유사한 서버에서 간단한 Perl 스크립트를 통해 ftp로 파일을 다운로드 할 수 있습니다. Centos 서버에서 Perl 스크립트로 연결이 거부되었습니다. 그래서 여러 PHP 스크립트를 시도했다. 그 직업에 대한 아래의 스크립트가 있습니까? 또는 스크립트에 어떤 문제가 있습니까? 당신이 Perl 스크립트에 당신이 cp gateway_data_301.txt을하고있는 반면에 당신이 echo $sftp->get('gateway_data*');을하고있는 게시 한 PHP 스크립트의 첫 번째에서 스크립트 1

#!/usr/bin/php 
<?php 
include('Net/SSH2.php'); 
$sftp = new Net_SFTP('xx.xx.xxx.xxx'); 
if (!$sftp->login('myuser', 'mypasswd')) { 
    exit('Login Failed'); 
} 

// outputs the contents of filename.remote to the screen 
echo $sftp->get('gateway_data*'); 
?> 

스크립트 2

#!/usr/bin/php 
<?php 
include('Net/SSH2.php'); 

username='myuser'; 
password='mypasswd'; 
// Create SCP connection using a username and password 
$scp = new SCP(
    'xx.xx.xxx.xxx', 
    new SSH2Password($username, $password) 
); 

################################# 
$sftp = ssh2_sftp($conn); 

// Create a new local folder 
ssh2_sftp_mkdir($sftp, './data'); 

// Retrieve a list of files 
$files = scandir('ssh2.sftp://' . $sftp . '/data/gateway_data*'); 
################################################################ 
?> 
+0

두 개의 질문을 두 개의 별도 게시물로 나누십시오. 다운로드 질문에 관해서는 게시 한 코드에 어떤 특정 문제가 있는지 자세히 설명하십시오. –

+0

위의 스크립트는 cd 데이터의 결과를 출력하는 것 외에는 아무런 오류도 발생시키지 않습니다. ls; pwd; 인쇄 "$ stdout"; 인쇄물에 주석을 달면 아무 일도 일어나지 않습니다. –

+0

내 의견보기 http://stackoverflow.com/q/27346971/569976 – neubert

답변

0

. PHP 스크립트에서 그렇게 해보십시오. 예. echo $sftp->get('gateway_data_301.txt');.

당신이 무엇을 기대하고 있는지는 분명하지 않습니다. 파일 이름/실제로/와일드 카드가 없다면 gateway_data *로 시작하는 모든 파일을 다운로드하고 출력에서 ​​연결 만 할 것으로 예상됩니까? 개인적으로, 나는 단지 false 또는 NULL을 반환하는 것이 그것보다 낫다고 생각합니다.

-1

PHP에서 스크립트 2를 사용할 수 있습니다. 그러나 거기에는 뭔가가 빠져 있습니다. 원본 디렉터리 만 열 수 있습니다. 해당 폴더의 모든 파일에 루프를 작성해야합니다.

// Retrieve a list of files 
    $files = scandir('ssh2.sftp://' . $sftp . '/data/gateway_data*'); 
    foreach ($files as $key => $value) { 

SFTPConnection을 사용하여 example of how to send a file with SFTP을 참조하십시오.