Нужна помошь

Discussion in 'PHP' started by Tem, 11 Apr 2009.

  1. Tem

    Tem -

    Joined:
    5 Oct 2005
    Messages:
    557
    Likes Received:
    157
    Reputations:
    179
    Значить так
    Есть сервак
    Есть шелл на нём
    Есть папка на серваке с музыкой.

    Задача
    Как по средством пхп скоприровать песни с одного сервака на другой ?

    P/S tar не предлогать.
     
  2. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    По фтп на второй серв залогинись и залей
     
  3. Tem

    Tem -

    Joined:
    5 Oct 2005
    Messages:
    557
    Likes Received:
    157
    Reputations:
    179
    Да уже

    Есть веб шелл на нём, фтп и всё остольное нету.
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Копирует любые локальные файлы на сторонний фтп-сервер:


    PHP:
    <?php 
    @set_time_limit(0); 
    @
    ini_set("display_errors","1");

    $file "имя_файла.mp3"// Локальный файл, который копируем (абсолютный путь или просто название, если скрипт в этой же папке) 
    $newfile '/http/имя_файла.mp3'// Куда копируем (абсолютный путь на нашем ДРУГОМ сервере, фтп доступ)

    $open ftp_connect("фтп-сервер","21","100"); // сервер, порт, таймаут 
    if(!ftp_login($open,"фтп-логин","фтп-пароль"))  
        exit(
    "Не могу соединиться"); 
    # Копируем # 
    if (ftp_put($open$newfile$fileFTP_BINARY))  echo "$file скопирован\n"
    else  echo 
    "Не удалось скопировать $file\n"
    ftp_close($open); // закрываем фтп-соединение 
    ?>
    а вот так копирует целыми папками:

    PHP:
    <pre>
    <?php 
    @set_time_limit(0); 
    @
    ini_set("display_errors","1");


    $l_folder '/home/www/bla-bla-bla/http/s1/'// Полный абсолютный путь к папке, 
    //которую тырим на наш фтп (в конце слеш)
    $r_folder '/http/s1/';// Полный абсолютный путь к папке, 
    //в которую будем копировать стыренное, 
    //находится на нашем фтп (в конце слеш). 
    //Должна быть создана заранее.


    function ff($dir) {
       if (
    is_dir($dir)) {
       if (
    $dh opendir($dir)) {
         while ((
    $file readdir($dh)) !== false) {
          if (
    filetype($dir $file)=="file"// Если тип переменной - file
           
    $arr[] = $file;
         }
       
    closedir($dh);
      }
     }
     return 
    $arr;
    }


    $b ff($l_folder);
    $count count($b);
    for (
    $i=0;$i<$count;$i++) {
      
    $file $l_folder.$b[$i]; // Файл, который копируем
      
    $newfile $r_folder.$b[$i]; // Файл приемник 
      
    $open ftp_connect("фтп-сервер","21","100"); // сервер, порт, таймаут 
      
    if(!ftp_login($open,"фтп-логин","фтп-пароль"))  
        exit(
    "Не могу соединиться"); 
      
    # Копируем # 
      
    if (ftp_put($open$newfile$fileFTP_BINARY))  echo "$file скопирован\n"
      else  echo 
    "Не удалось скопировать $file\n"
      
    ftp_close($open); // закрываем фтп-соединение 
    }
    ?>
    </pre>
    не самый наверняка оптимальный вариант, но рабочий, проверил только что
     
    #4 Pashkela, 11 Apr 2009
    Last edited: 11 Apr 2009
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    не совсем понял о чем речь... ну елси есть шелл (или веб шелл) нахер использовать php ?
    wget для linux, fetch для фряхи

    положи в доступную для веба директорию файлы нужные если надо
    и спокойно коммандой слей их с другого сервака со скоростью пропускного канала сервера )

    я помню с сайтов дампы баз и тд лил на свой серв где у меня был шелл со скоростью 600 мегабит

    а уж если ты и tar можешь использовать ваще щастье тебе ) заархивил
    и слил темже fetch разархивил радуйся
     
    _________________________