Autor Zpráva
Začátečník
Profil *
Ahoj, měl bych dvě otázky..

1 jak můžu na serveru spustit ručně soubor /etc/crontab?

2 můžu z tohoto souboru spouštět soubor.php na webu
  */1 *      * * *    root      http://domain/update.php[/pre]


Děkuji
Začátečník
Profil *
OPRAVA:

 */1 *      * * *    root      http://domain/update.php
Yur4Y
Profil
1. /etc/crontab je konfiguračný súbor, nedá sa spustiť. Čo chceš spraviť?
2. Vytvor si shell skript, ktorý bude vytvárať HTTP request na súbor na webe (napr. pomocou wget) a do cronu zaznač spúšťanie tohto súboru.
Začátečník
Profil *
Yur4Y:
Potřeboval bych spouštět pravidelně soubor.php jelikož v shelu to naprogramovat neumím a v php jsem to napsal tak bych ho chtěl spouštět. Ale když dám
do souboru /etc/crontab

*/1 *      * * *    root      /var/www/user_1/www/update.php


tak se nic nestane :(

Děkuji za tvou pomoc
Yur4Y
Profil
Posledný stĺpec v /etc/crontab nie je názov súboru, ktorý sa má spustiť, ale príkaz. Samozrejme je možné ako príkaz použiť aj názov súboru, ktorý sa má spustiť (ide o presne rovnakú logiku, ako keď píšeš shell príkazy), ale musíš dodržať bežné podmienky, t.j. spustiteľný príznak (`chmod a+x súbor`) a vložiť do súboru shebang, v prípade PHPčka zrejme teda:
#!/usr/bin/php5
<?php
//PHP kód
?>
(Cestu, ktorú máš zapísať v shebangu, zistíš z `which php5`.)
Samozrejme je aj druhá možnosť, ktorá nevyžaduje shebang ani spustiteľný príznak, a to vložiť do /etc/crontab príkaz, ktorý nespustí súbor, ale PHP interpreta s daným súborom:
*/1 *      * * *    root      /usr/bin/php5 /var/www/user_1/www/update.php

Cesta /usr/bin/php5 nemusí byť vo všetkých systémoch rovnaká, treba si to zistiť cez spomínaný príkaz which. Podobne ELF pre PHP sa nemusí volať php5, možno je to php.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0