Значить так
Есть сервак
Есть шелл на нём
Есть папка на серваке с музыкой.
Задача
Как по средством пхп скоприровать песни с одного сервака на другой ?
P/S tar не предлогать.
По фтп на второй серв залогинись и залей
Да уже
Есть веб шелл на нём, фтп и всё остольное нету.
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>
не самый наверняка оптимальный вариант, но рабочий, проверил только что
не совсем понял о чем речь... ну елси есть шелл (или веб шелл) нахер использовать php ?
wget для linux, fetch для фряхи
положи в доступную для веба директорию файлы нужные если надо
и спокойно коммандой слей их с другого сервака со скоростью пропускного канала сервера )
я помню с сайтов дампы баз и тд лил на свой серв где у меня был шелл со скоростью 600 мегабит
а уж если ты и tar можешь использовать ваще щастье тебе ) заархивил
и слил темже fetch разархивил радуйся
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot