PDA

Просмотр полной версии : Нужна помошь


Tem
11.04.2009, 09:24
Значить так
Есть сервак
Есть шелл на нём
Есть папка на серваке с музыкой.

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

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

razb
11.04.2009, 14:03
По фтп на второй серв залогинись и залей

Tem
11.04.2009, 16:11
Да уже

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

Pashkela
11.04.2009, 16:29
Копирует любые локальные файлы на сторонний фтп-сервер:



<?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, $file, FTP_BINARY)) echo "$file скопирован\n";
else echo "Не удалось скопировать $file\n";
ftp_close($open); // закрываем фтп-соединение
?>


а вот так копирует целыми папками:


<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, $file, FTP_BINARY)) echo "$file скопирован\n";
else echo "Не удалось скопировать $file\n";
ftp_close($open); // закрываем фтп-соединение
}
?>
</pre>


не самый наверняка оптимальный вариант, но рабочий, проверил только что

Gar|k
11.04.2009, 17:54
не совсем понял о чем речь... ну елси есть шелл (или веб шелл) нахер использовать php ?
wget для linux, fetch для фряхи

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

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

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