Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Cykliczne wykonywanie skryptu
Forum PHP.pl > Forum > Przedszkole
Jifer
Zaznaczam, że wiem do czego służy crone, net jest tego pełen.

Potrzebuję, by pewien skrypt był uruchamiany regularnie (kopia bazy danych, uaktualnianie rankingu, wysyłanie spamu czy inne badziewia).
Tu zaczęły mi się schody.

Wszędzie jest opisane jak nazywać pliki dla crona i takie tam. Czego natomiast nie wiem.

-skąd mam wiedzieć czy mój serwer to obsługuje
(korzystam z serwera wirtualnego, mam swój FTP i tyle. Nie mam dostępu do konfiguracji serwera. O ile mi wiadomo używa CGI)
-jak mam zaimplementować to w moim skrypcie PHP

o ile sam język PHP znam dość dobrze jak na amatora, o tyle komendy które znajdowałem w necie (te przypominające ajaxa) przerastają mnie.

Proszę o pomoc i wyjaśnienie krok po kroku jak laikowi jak mam sprawdzić/zainstalować/uruchomić crona lub coś podobnego, zaimplementować to w moim skrypcie PHP tak by takowy wykonywał się sam regularnie co np. 7 dni.
(nie mam pojęcia z jakiej platformy korzysta serwer z którego używam).

Z góry dziękuję za wszelką pomoc, zwłaszcza tym, którzy czytają i jasno odpowiadają, a nie marudzą żebym se wygooglał i takie tam.
PawelC
Cytat
-skąd mam wiedzieć czy mój serwer to obsługuje
(korzystam z serwera wirtualnego, mam swój FTP i tyle. Nie mam dostępu do konfiguracji serwera. O ile mi wiadomo używa CGI)

W panelu np DirectAdmin powinieneś mieć coś takiego jak CronJobs.
Cytat
-jak mam zaimplementować to w moim skrypcie PHP

Piszesz skrypt i przy pomocy terminarza CronJobs ustawisz ścieżkę do skryptu i co ile ma odpalać skrypt
jareeny
A masz w panelu admininstratora (konta na serwerze ofc) chociaż napisane CRON? Jeżeli nie, to zapewne nie masz obslugi crona i nic nie zrobisz. Dla pewności przejrzyj co usługodawca pisze o tym co jest udostępnione na serwerze a co nie. Jak masz wątpliwości, no to napisz do obsługi klienta winksmiley.jpg
Jifer
już to zrobiłem, napisałem. Czekam na razie na odpowiedź. W panelu nie mam nic o Cronie, nie mam również nic na ten temat w specyfikacji.

Nie ma żadnej innej alternatywy? Coś co mogło by działać w ramach FTP, bez ingerencji w pliki systemowe. Coś w stylu klasy?
PawelC
Kiedyś słyszałem coś że można wykorzystać harmonogram zadań windowsa do otwierania strony ze skryptem, ale wadą tego jest to że będzie działało tylko jak będzie komputer włączony.
Poczytaj o tym w necie.
Jifer
Mam taką usługę na serwerze.
To mam nadzieję będzie ostatnie pytanie.

"
Nastepnie wrzuca go Pan na konto i z shella wydaje komende:
crontab ./cron.txt
"

z wiki wiem co to shell, ale jak się do niego dostać. Jaki program / wtyczka.
Nie wiem jak i gdzie mam wprowadzić owe komendy dla shela.

Niestety w google coś wprowadzić z frazą shell to katastrofa... to jak wpisać kowalsky
PawelC
Skoro jest taka usługa na serwerze to w panelu powinna być możliwość ustawienia zadań crona. Jaki masz panel, DA czy inny?
Jifer
panel mam autorski firmy w której wykupuje serwer. Nie ma tam tego. Trzeba dostać się do servera inaczej, poprzez SSH.

Wygooglałem puttiego i nim się połączyłem. Komendy pięknie działają, muszę teraz tylko sprawdzić, czy skrypt będzie mi się regularnie odpalał.

Połączenie z shell (poprzez telnet lub ssh lub inne)
ściągamy klienta obsługującego takowe badziewie, np putty, łączymy się ze swoim serverem i ju. Dalej to kaszka. Trzeba tylko komendy poznać, a tego net jest pełen.

Jeszcze tylko muszę dowiedzieć się jak na swoim serwerze testowym (localhost) zainstalować crona. Problem w tym, że mam winde tongue.gif
PawelC
http://cronw.sourceforge.net/ -> CRONw - CRON for Windows
http://www.cronforwindows.com/ -> cron for windows


Jifer
hmmm.... macie pomysł dlaczego mi to nie chodzi?

'lan/cron_test.php' zawiera zapytanie SQL dodające wpis do bazy (działa poprawnie)

takie wpisy dla crona wprowadzałem

*/2 * * * * /usr/local/bin/php /home/jifer/public_html/cron_test.php (teoretycznie co 2min)
* 14 * * * /usr/local/bin/php /home/jifer/public_html/cron_test.php (teoretycznie co minutę o 14stej)

*/2 * * * * wget http://lan.jifer.civ.pl/cron_test.php //samo wget z adresem powoduje dodanie linijki w bazie
*/2 * * * * lynx -dump http://lan.jifer.civ.pl/cron_test.php //samo również działa jak wget

oraz

dopisek na początku pliku cron_test.php
#!/usr/local/bin/php -q

i wpis crontab
*/2 * * * * php /home/jifer/public_html/cron_test.php

i masę innych mniej lub bardziej podobnych

żadne z nich ie powoduje, że w bazie pojawia się wpis
(samo wywołanie komendy wget lub lynx -dump ręcznie powoduje dodanie pozycji)
Co jest nie tak?
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.