Strona 1 z 1

Wywołanie skryptu PHP przez crona

: 11 lipca 2011, 10:16
autor: ksysinek
Witam.
Zrobiłem skrypt do okresowego oczyszczania bazy, który powinien być wywoływany z crona. Zapisuje on w bazie, kiedy ostatnie czyszcznie zostało wykonane. Próbowałem go dodać do crontab na różne sposoby:

Kod: Zaznacz cały

*/5 * * * * php5 /var/www/cleanup.php
*/5 * * * * /usr/bin/php /var/www/cleanup.php
*/5 * * * * wget -o /dev/null http://adresstrony/cleanup.php
*/5 * * * * /var/www/cleanup.php
Nigdy nie dostałem potwierdzenia wykonania. O dziwo wpisując w konsoli:

Kod: Zaznacz cały

php5 /var/www/cleanup.php lub
/var/www/cleanup.php
za każdym razem uzyskiwałem oczekiwany efekt. Nie mam pojęcia co mogę robić źle.

: 11 lipca 2011, 11:24
autor: Bastian

Kod: Zaznacz cały

wget -q --delete-after  http://adresstrony/cleanup.php 
lub

Kod: Zaznacz cały

php5 -f cleanup.php

Wystarczy spojrzeć w pomoc

: 11 lipca 2011, 11:31
autor: ksysinek
To samo, z konsoli wszystko dobrze a z crona nie. Jak sprawdzić, czy cron dobrze pracuje?

: 11 lipca 2011, 12:21
autor: Bastian

Kod: Zaznacz cały

cat /var/log/syslog |grep CRON

: 11 lipca 2011, 16:22
autor: ksysinek
Nie było nic w syslogu na temat rzeczonego wpisu w crontab. Dodałem ten wpis innemu uzytkownikowi i poszło. Nie wiem, co mogło byc nie tak. Czy sa jakies restrykcje, np maxymalna ilosc wpisów lub zadań zaplanowanych na tę samą godzinę?

: 11 lipca 2011, 20:42
autor: DaVidoSS
Masz blad w crontab.

Kod: Zaznacz cały

*/5 * * * * /var/www/cleanup.php
Powinno byc :

Kod: Zaznacz cały

*/5 * * * * użytkownik php /var/www/cleanup.php
Przecież Ci cron pliku nie wykona lecz polecenie.

: 11 lipca 2011, 22:09
autor: lessmian2
DaVidoSS pisze:Masz blad w crontab.

Kod: Zaznacz cały

*/5 * * * * /var/www/cleanup.php
Powinno byc :

Kod: Zaznacz cały

*/5 * * * * użytkownik php /var/www/cleanup.php
Przecież Ci cron pliku nie wykona lecz polecenie.

Tylko jeśli umieszczasz takie wpisy w /etc/cron.d/ i pochodnych. Przy edycji za pomocą crontab -e nie podaje się użytkownika.