Есть бесплатный хост на "http://www.hut.ru/" как тест площадка проектов, есть некий сайт который обновляет станичку "stat.bla.bla.bla" каждые 5ть минут, требуется заносить эти данные в БД для дальнейшего эксплуатирования, обработчик данных есть но вот как сделать чтоб он запускался каждые 5ть мин и заново считывал инфо с нужной странички, знаю есть крон для выполнение запланированых задач, но серв не мой, я только выложил проект%)
Собственно вопрос: есть ли возможность на халявных веб-хостах включать ф-и на стороне серва, для выполнения собственных задач.
Вам не кажется, что этот вопрос лучше задавать сапорту хостера или читатать его faq?
Если нет шелла и крона можно поставить как cgi сценарий демонизирующийся скрипт на перле. Будет ли работать и будет ли вам что-то за это зависит от хостера.
>Вам не кажется, что этот вопрос лучше задавать сапорту хостера или читатать
>его faq?фак прочитал.
>Если нет шелла и крона можно поставить как cgi сценарий демонизирующийся скрипт
>на перле. Будет ли работать и будет ли вам что-то за
>это зависит от хостера.шел есть, крон уже идет как комерческая добавка, а можно поконкретней по cgi-скрипт, было бы супер если дадите линк на решение задачи таким подходом, заранее сп.
Если есть шелл, то вполне хватит screen или nohup для запуска программы.
Но если хочется, то вот грубый пример cgi скрипта, который демонизируется и с интервалом $delay запускает $cmd, вывод от которой пишет в $logfile
#!/usr/bin/perl -w
use strict;
use POSIX 'setsid';
my $cmd='/bin/ls -l /tmp';
my $logfile='/tmp/daemon_cron.log';
my $delay=10;
open LOG, '>',$logfile or die "Can't open $logfile for writing: $!";
chdir '/' or die "Can't chdir to /: $!";
open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
defined(my $pid = fork) or die "Can't fork: $!";
if ($pid) {
print "Content-type: text/html\n\n";
print "cron daemon is launched with pid $pid";
exit;
}
setsid or die "Can't start a new session: $!";
open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
while (1) {
sleep $delay;
my $res=`$cmd`;
print LOG time, ": executed '$cmd'. Output:\n$res\n";
}