Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
na apach2 mam serwis napisany w kohana 3.x , chciałbym za pomocą cron'a uruchomić określoną controller/akcje w serwisie ,
w jaki sposób to mogę wykonać ?
akcja jaką w przeglądarce wygląda tak http:/serwis/kontroler/akcja
Offline
Możesz do takich celów napisać prostego wrapperka w perlu w postaci
#!/usr/bin/perl use LWP::UserAgent; my $browser = LWP::UserAgent->new(); my $response = $browser->get('http:/serwis/kontroler/akcja'); exit 0;
i oczywiście pobawić się w parametry oraz zwracanie jakiegoś adekwatnego error code, ale do prostych rzeczy powyższy przykład w zupełność i wystarczy.
Offline
np tak:
/usr/bin/lynx -dump http://serwis/kontroler/akcja &>/dev/null
Libo z armatą na wróbla? :>
Offline
Do drupala kiedys był myk, żeby skrypt php odpalać z crona wgetem, i nawet to działało (jedyna dostępna wtedy metoda).
Dodatkowo można było to oskrypcić, żeby cron.php wywalał rezultat do html|xml|txt, potem:
grep akcja rezultat.xml|| mail pacjent@domena -s "ALARM-cron.php nie działa"
winnetou napisał(-a):
np tak:
Kod:
/usr/bin/lynx -dump http://serwis/kontroler/akcja &>/dev/nullLibo z armatą na wróbla? :>
Co do perla, to wszystko zależy, co chcesz do crona wsadzić. :D
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2012-03-15 13:37:42)
Offline
winnetou napisał(-a):
np tak:
Kod:
/usr/bin/lynx -dump http://serwis/kontroler/akcja &>/dev/nullLibo z armatą na wróbla? :>
Tak oczywiście zgadzam sie z tobą w 100%, osobiście wyciąłem moj przykład z działającego skryptu, ktory dodatkowo przekazuje paramtrey przez POST.
Offline
dzięki !!!
pomysł z lynx jest świetny :)
Offline
jeszcze jedno (zapomniałem wcześniej) jak w adresie masz znaki typu pytajnik czy ampersand to linka weź w ' lub "
/usr/bin/lynx -dump "http://serwis/kontroler/akcja?cos=cosinnego&nic=cosnowego" &>/dev/null
Offline
problem wrócił :(
Na jednym z hostingów nie mam lynx , tylko możliwość odpalenia przez:
php -f /sciezka/do/pliku.php
a w takim wypadku jak dokonać uruchomienia danego kontrollera z akcją?
próbowałem przez:
php -f /srv/www/vhosts/domena.pl/index.php/controller/akcja
ale nie działa :/
Offline
Plik powinien być uruchomiony przez Apacha, zamiast lynxa możesz użyć wgeta, nadaje się idealnie, możesz też uzyć curla.
np
wget "http://serwis/kontroler/akcja?cos=cosinnego&nic=cosnowego" -O rezultat.txt
albo
curl "http://serwis/kontroler/akcja?cos=cosinnego&nic=cosnowego" >>rezultat.txt
Z curla możesz przeslać bezpośrednio do grepa, i obudować to funkcją alarmującą, jak skrypt nie wykona się prawidłowo, podobnie można zrobić parsując plik wynikowy wgeta, też grepem.
Pozdrawiam
;-)
Ostatnio edytowany przez Jacekalex (2012-07-08 15:43:32)
Offline
jeżeli musisz odpalać przez php to możesz zmodyfikować kod tak aby przyjmował te argumenty także z linii poleceń lub zmiennych środowiskowych ...
Offline