php по cron

Модератор: Модераторы разделов

Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

php по cron

Сообщение esvaf »

Имеется php скрипт, который необходимо выполнять на дешевом хостинге каждые 15 минут. На сервере есть cron.
Как сделать? при этом желательно чтоб эта прога ничего не выводила на стандартный вывод т.к. вывод программ отправляется мне на почту.
P.S. На сервере у них стоит линух.
P.P.S. Скрипт мониторит состояние удаленного компа с помощью ping при изменении состояния пишет в лог время и полученное состояние(up/down). Если есть аналоги, написанные на более подходящем языке - буду рад!
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: php по cron

Сообщение user »

В crontab -e
*/15 * * * * /home/путь/до/того/что/запускаем
Спасибо сказали:
Аватара пользователя
solshark
Сообщения: 439
Статус: Монархист
ОС: Gentoo ~amd64

Re: php по cron

Сообщение solshark »

user писал(а): ↑
10.01.2007 01:56
В crontab -e
*/15 * * * * /home/путь/до/того/что/запускаем

Так более корректно:

Код: Выделить всё

15 * * * * /usr/bin/php -c /etc/php.ini -q -f /path/to/script.php
Ceterum censeo Carthaginem esse delendam
Marcus Porcius Cato
Мой блог про KDE4 и рыбу в томате
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: php по cron

Сообщение esvaf »

solshark писал(а): ↑
10.01.2007 11:39
user писал(а): ↑
10.01.2007 01:56

В crontab -e
*/15 * * * * /home/путь/до/того/что/запускаем

Так более корректно:

Код: Выделить всё

15 * * * * /usr/bin/php -c /etc/php.ini -q -f /path/to/script.php


Спасибо! Похоже даже работает. А точно можно будет сказать только через пару дней.

Кстати, раз теперь известно как запускать - может кому и пригодится:

Код: Выделить всё

<?php
$ip="0.0.0.0"; //подставьте здесь ip адрес или доменное имя копьютера, который проверяем
$a=`ping -c 4 $ip`;
$b=nl2br($a);
$c=explode("<br />", $b);
$cnt1=count($c);
$num1=$cnt1-6;
$a=`ping -c 4 $ip`;
$b=nl2br($a);
$c=explode("<br />", $b);
$cnt2=count($c);
$num2=$cnt2-6;
$a=`ping -c 4 $ip`;
$b=nl2br($a);
$c=explode("<br />", $b);
$cnt3=count($c);
$num3=$cnt3-6;
$num=$num1+$num2+$num3;
#echo "good pings: $num of 12";
if($num>0)
  {
#   echo "up";
   $state=1;
  }
else
  {
#   echo "down";
   $state=0;
  }
$fp=fopen("last_state.txt","r");
$last=fread($fp,1);
fclose($fp);
if($last!=$state)
 {
  $fp=fopen("last_state.txt","w");
  fwrite($fp,"$state");
  fclose($fp);
  $line=date("d-F-Y h:i:s A")."   turned to $state \n";
  $fp=fopen("statelist.txt","a");
  fwrite($fp,"$line");
  fclose($fp);
 }
?>

Необходимо в той-же дириктории, что и скрипт создать чистый файл statelist.txt и файл last_state.txt с цифрой 1 или 0 внутри
Спасибо сказали: