Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne] CRON - z czym to się je?
Forum PHP.pl > Forum > Przedszkole
Niree
Cześć. Postanowiłem dziś wykonać skrypt podpinając pod to darmową bramkę SMS.

1. Stworzyłem skrypt .php
2. Władowałem hasło roota do programu "puffy" i... i na tym koniec.

Czarna magia. Mam proste pytanie, jak wykonać CRON np. z folderu (zaraz po html_public) /skrypt/cron.php co minutę (konkretna komenda, krok po kroku), oraz ewentualne logi z tego skryptu?
W skrypcie mam kilka razy "echo" i chciałbym te echo zobaczyć w logach, co konkretnie wyskakuje.

Zainstalowałem program PuFFy, jeżeli natomiast polecacie inny program - proszę uprzejmie o nazwę.

Pozdrawiam :-)
Turson
Kod
crontab -e

dopisz częstotliwość i skrypt do wykonania
done
Niree
Dopisałem na końcu:

  1. */1 * * * * echo "test"


I chciałbym teraz logi z tego? Jaką komendą to uzyskam?
Turson
nie
Kod
echo "test"
a tam ma być bashowe polecenie. Typu:
Kod
    */1 * * * * /usr/bin/php sciezka/do/skryptu.php

/usr/bin/php to interpeter php
loguj to sobie w innym pliku i podejrzyj
Niree
Sciezka do skryptu po zalogowaniu do FTP: /panel/cron(folder bedzie mial inna nazwe)/cron.php, w /panel/ jest np. index.php i cała strona.
Co oznacza sciezka do skryptu w Twoim poście? Taką ścieżkę jak w FTP?

Ścieżka ze zmiennej $_SERVER['SCRIPT_FILENAME'] = /var/www/panel/cron/cron.php
Turson
Podaj ją właśnie
Niree
Niestety, nie działa.

Dałem w cron.php:
  1. zapytanie("UPDATE `driver_sms` SET `date` = 'CRON DZIALA' WHERE `id` = '1'", $dbh1)or die(mysql_error());


I jak możesz się domyślać, skrypt sie nie wykonuje. (uprzedzając, tak, 'date' jest ustawione jako text, testowo dalem tylko byle jaką kolumne).

Natomiast zapytanie się wykonuje po wejściu na bezposredni adres skryptu.
viking
Uruchom ten skrypt z wiersza poleceń php ścieżka. Jak zadziała to przeklej do crona.
Niree
Okej, odpalilem konsolą php, teraz problem. Konsola wywaliła:


  1. PHP Warning: include(../s/config.php): failed to open stream: No such file or directory in /var/www/panel/cron/cron.php on line 3
  2. PHP Warning: include(): Failed opening '../s/config.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/panel/cron/cron.php on line 3
  3. PHP Warning: include(../s/connect.php): failed to open stream: No such file or directory in /var/www/panel/cron/cron.php on line 4
  4. PHP Warning: include(): Failed opening '../s/connect.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/panel/cron/cron.php on line 4
  5. PHP Fatal error: Call to undefined function zapytanie() in /var/www/panel/cron/cron.php on line 6



Co istotne, po /panel/ mam jeszcze /s/ w którym mam pliki config oraz connect, które łączą z bazą, tam mam hasło do bazy itp. Jest również zdefiniowana funkcja (zapytanie()).
Co zrobić w tym przypadku? W cron.php mam include('../s/config.php');, a konsola tak jakby nie widzi tego pliku.
Puszy
To ja się podepnę do tematu. Czy to normalne że CRON ma opóźnienia z wprowadzaniem zmian? Przeładowanie następuje dopiero po zakończeniu procesów wywołanych przez CRONa i to nie zawsze, czasami muszę czekać nawet 2-4 godziny żeby załadowały się nowo wprowadzone ustawienia.
nospor
@Niree zawsze ale to zawsze uzywac sciezek bezwzglednych to nie bedziesz mial takich problemow
Najlepiej jest pobrac sciezkie pliku glownego (__DIR__) i do niej doczepiac kolejne partie sciezek do poszczegolnych rzeczy.

sciezki wzgledne nie sa liczone od miejsca skryptu, ale od miejsca odpalenia skryptu wink.gif
Niree
Dzięki @nospor, w końcu wyrzuciło coś sensownego:


  1. 1. Brak rekordów 5. Brak rekordów 9. Brak rekordów 10. Brak rekordów 11. Brak rekordów 6. Brak rekordów 7. Brak rekordów 8. BRAK REKORDOW


Teraz uruchomię CRON i sprawdzimy.

Alleluja :-)
Działa. Dzięki wielkie za pomoc. Nie wiedziałem jak to ugryźć, zawsze to jakieś nowe doświadczenie.

@Turson, @viking niezawodni ;-)
@nospor pomoc nieoceniona haha ;-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.