URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6230
[ Назад ]

Исходное сообщение
"Выполнение скрипта на бесплатном хосте"

Отправлено slayersilence , 02-Мрт-09 12:33 
Есть бесплатный хост на "http://www.hut.ru/" как тест площадка проектов, есть некий сайт который обновляет станичку "stat.bla.bla.bla" каждые 5ть минут, требуется заносить эти данные в БД для дальнейшего эксплуатирования, обработчик данных есть но вот как сделать чтоб он запускался каждые 5ть мин и заново считывал инфо с нужной странички, знаю есть крон для выполнение запланированых задач, но серв не мой, я только выложил проект%)
Собственно вопрос: есть ли возможность на халявных веб-хостах включать ф-и на стороне серва, для выполнения собственных задач.

Содержание

Сообщения в этом обсуждении
"Выполнение скрипта на бесплатном хосте"
Отправлено angra , 02-Мрт-09 20:57 
Вам не кажется, что этот вопрос лучше задавать сапорту хостера или читатать его faq?
Если нет шелла и крона можно поставить как cgi сценарий демонизирующийся скрипт на перле. Будет ли работать и будет ли вам что-то за это зависит от хостера.


"Выполнение скрипта на бесплатном хосте"
Отправлено slayersilence , 02-Мрт-09 22:50 
>Вам не кажется, что этот вопрос лучше задавать сапорту хостера или читатать
>его faq?

фак прочитал.

>Если нет шелла и крона можно поставить как cgi сценарий демонизирующийся скрипт
>на перле. Будет ли работать и будет ли вам что-то за
>это зависит от хостера.

шел есть, крон уже идет как комерческая добавка, а можно поконкретней по cgi-скрипт, было бы супер если дадите линк на решение задачи таким подходом, заранее сп.



"Выполнение скрипта на бесплатном хосте"
Отправлено angra , 02-Мрт-09 23:35 
Если есть шелл, то вполне хватит 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";
}