Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Автоматичная закачка файла - альтернатива FTP ? |

30.04.2010, 05:13
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
Автоматичная закачка файла - альтернатива FTP ?
Таак, написал automatic remote backup tool, PHP скрипт дампит MySQL базы, записывает их локально и закачивает на удаленный FTP...
Только вот проблем...
Хост ругается: ftp_put() [function.ftp-put]: php_connect_nonb() failed: Operation now in progress (115) (2)
Саппорт отвечает: We do not allow the FTP functions to be used against remote FTP servers.
Так вот ищу простую альтернативу ftp_*, есть идея передавать имя файла (которое генерируется разное!) GET запросом удаленному скрипту, а тот скачает и запишет файл.
Но как реализовать, вообще не думается
Буду благодарен за куски кода, примеры, обяснения...
Спасибо что дочитали 
|
|
|

30.04.2010, 06:08
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
Ну например так:
1 хост, который делает дамп:
PHP код:
<?php
/*
{
Тут делаешь дамп и сораняешь файл локально
}
*/
$damp_file = "db.sql"; //Тут имя файл который сдампился
echo file_get_contents("http://my_server_2/saver.php?file=".$damp_file); //Тут ты передаешь хосту №2 какой файл ему скачивать
?>
Хост №2 который скачивает
PHP код:
<?php
$server_1 = "http://server_nomer_1/"; //Тут адрес сервера откуда скачивать
$dump_file = $_GET['file'];
$file_prefix = "saved_";
if(file_put_contents($file_prefix.$dump_file,file_get_contents($server_1.$dump_file))) {
echo "File_saved!";
}else echo "File dont saved";
?>
Ну впринципе и все. 1 скрипт напишет File_saved! если файл успешно скачен вторым сервером. На втором сервере появится файл saved_db.sql
Ну думаю схема понятна. )))
Если файл большой, то во втором скрипте скачивай "побайтово".
функция fread()
//практикуем убийство серверов?)))
Последний раз редактировалось m0Hze; 30.04.2010 в 15:27..
|
|
|

30.04.2010, 17:58
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
Ожидается что будет большой, и еще 50 штук таких... Базы phpBB3 =)
Иначе все понятно, спасибо огромное, щас в репу стукну
Няя, я не убиец =) Я наемный убиец =) ...а так, сайто строитель...
|
|
|

30.04.2010, 22:50
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
скрипт, который дампит (в переменной $server указать путь до скрипта, который скачивает):
Код:
<?php
/*тут дамп в переменную $dump*/
$server = 'http://fsdfdsf.ru/example.php'; //путь до второго файла
@ini_set('max_execution_time', 0);
$name = "dump".date("YmdHis").".sql";
if( @file_put_contents( $name, $dump ) )
{
echo 'Сохранили дамп...'.PHP_EOL;
$path = $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"].$name;
$content = file_get_contents( $server.'?put='.urlencode($path) );
if( $content == 'success' ) echo 'Сервер успешно сохранил наш дамп.'.PHP_EOL;
else echo 'Серверу не удалось сохранить наш дамп.'.PHP_EOL;
} else echo 'Дамп сохранить не удалось. Проверь chmod.';
?>
скрипт для сохранения дампа:
Код:
<?php
$dir = '/dumps/'; //папка с дампами
$file = "http://".stripslashes(urldecode(trim($_GET['put'])));
if( file_put_contents( $dir."dump".date("Y-m-d+H-i-s"), file_get_contents($file) ) )
{
die('success');
} else die('false');
?>
/*писалось на скорую руку, подправьте если что не так*/
|
|
|

01.05.2010, 15:10
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
^_WhitE_DeMoN_^ если блокируются только функции ftp_*, напишите свой класс на сокетах, благо FTP - простейший протокол
Или еще проще:
PHP код:
file_put_contents("ftp://user:password@ftp.server.ru/file.txt", file_get_contents('имя_локального_файла'));
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

02.05.2010, 02:56
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
Сообщение от Gifts
Или еще проще:
PHP код:
file_put_contents("ftp://user:password@ftp.server.ru/file.txt", file_get_contents('имя_локального_файла'));
Удивил, проще некуда! Но, пока сделал первый вариант... И хз че еще у хостера запрещенно 
|
|
|

09.05.2010, 01:39
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
Сообщение от LStr1ke
Ну например так:
1 хост, который делает дамп:
PHP код:
<?php
/*
{
Тут делаешь дамп и сораняешь файл локально
}
*/
$damp_file = "db.sql"; //Тут имя файл который сдампился
echo file_get_contents("http://my_server_2/saver.php?file=".$damp_file); //Тут ты передаешь хосту №2 какой файл ему скачивать
?>
Хост №2 который скачивает
PHP код:
<?php
$server_1 = "http://server_nomer_1/"; //Тут адрес сервера откуда скачивать
$dump_file = $_GET['file'];
$file_prefix = "saved_";
if(file_put_contents($file_prefix.$dump_file,file_get_contents($server_1.$dump_file))) {
echo "File_saved!";
}else echo "File dont saved";
?>
Ну впринципе и все. 1 скрипт напишет File_saved! если файл успешно скачен вторым сервером. На втором сервере появится файл saved_db.sql
Ну думаю схема понятна. )))
Если файл большой, то во втором скрипте скачивай "побайтово".
функция fread()
//практикуем убийство серверов?)))
Хост ругается:
file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration (2)
Идеи 
|
|
|

12.05.2010, 03:26
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
У никого ?
|
|
|

12.05.2010, 08:29
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от ^_WhitE_DeMoN_^
У никого ?
Помоему, вот этот параметр в php.ini
allow_url_fopen=on;
|
|
|

12.05.2010, 10:11
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
Нет доступа к php.ini
Ищу обход...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|