2017-06-02 64 views
0
#!/usr/bin/php 
<?php 
    $username = "backup"; 
    $password = "xxxxxxx"; 
    $url  = '192.168.1.100'; 
    // Make our connection 
    $connection = ssh2_connect($url); 

    // Authenticate 
    if (!ssh2_auth_password($connection, $username, $password)) 
    {echo('Unable to connect.');} 

    // Create our SFTP resource 
    if (!$sftp = ssh2_sftp($connection)) 
    {echo ('Unable to create SFTP connection.');} 


    $localDir = 'file:///home/hhh/Downloads/dbs'; 
    $remoteDir = '/home/backup/Dropbox/dbs'; 
    // download all the files 
    $dir = ('ssh2.sftp://' . $sftp . $remoteDir); 
    $numberOfFiles = 10; 
    $pattern = '/\.(aes|AES)$/'; // check only file with these ext.   
    $newstamp = 2;    
    $newname = ""; 


    if ($handle = opendir($dir)) {    
     while (false !== ($fname = readdir($handle))) {    
     // Eliminate current directory, parent directory    
     if (preg_match('/^\.{1,2}$/',$fname)) continue;    
     // Eliminate other pages not in pattern    
     if (! preg_match($pattern,$fname)) continue;    
     $timedat = filemtime("$dir/$fname"); 
     $fils[$fname] = $timedat;    
     if ($timedat > $newstamp) { 
      $newstamp = $timedat; 
      $newname = $fname; 
      } 
     } 
     } 
    closedir ($handle); 

    arsort ($fils, SORT_NUMERIC); 
    sfor($i = 0; $i < $numberOfFiles ; $i++) 
    $fils2 = array_keys($fils); 
    $i = 0; 

    foreach($fils2 as $s){ 
    $i++; 
    echo "$i " . $s . "<br>\n"; 
    if($i == $numberOfFiles)break; 
    } 
    // $newstamp is the time for the latest file 
    // $newname is the name of the latest file 
    // print last mod.file - format date as you like    

$rttp = ssh2_scp_recv($connection, "$remoteDir/$newname", "$localDir/$newname") 

?> 

下载使用PHP,SSH2最新的文件,我一直在试图使用SFTP目录下载最新FILES。我只能设法下载一个文件,而不是10个。我也能够调整它来下载所有文件,但那不是我之后的事情。未能通过SFTP

我想使它工作,以便我可以下载一定数量的X文件。

回答

1
#!/usr/bin/php 

<?php 
$username = "user"; 
$password = "password"; 
$url  = "host ip"; 
// Make our connection 
$connection = ssh2_connect($url); 

// Authenticate 
if (!ssh2_auth_password($connection, $username, $password)) 
    {echo('Unable to connect.');} 

// Create our SFTP resource 
if (!$sftp = ssh2_sftp($connection)) 
    {echo ('Unable to create SFTP connection.');} 

//$dir 
$localDir = "/path/to/localdir/".date('Y-m-d'); 
exec("mkdir -p '$localDir'"); 
echo $localDir; 


$remoteDir = "/path/to/remotedir"; 
// download all the files 
$files = scandir ('ssh2.sftp://' . $sftp . $remoteDir); 
if (!empty($files)) { 
    foreach ($files as $file) { 
    if ($file != '.' && $file != '..') { 
     if (substr($file, 0, 11)== date('d-M-Y')) { 

      //date('d-M-Y', strtotime('yesterday') #for retriving the previous day 
      # code... 
      // echo $file; 
       ssh2_scp_recv($connection, "$remoteDir/$file", "$localDir/$file"); 

     } 

    } 
    } 
} 
?> 

这从下载远程目录的最新文件,并创建日期一个新的本地目录,它下载新的远程文件