Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Cron Tab
Forum PHP.pl > Forum > PHP
Fixer
Słuchajcie używam cpanela na unixie i chciał bym w Cron Tab'ie ustawić by skrypt PHP wykonywał się co godzinę.

Skrypt ten pobiera stronę przez curla i łączy się z bazą danych mysql

W pole "Polecenie" w cpanelu wpisywałem już różne polecenie ale zadne nie zadziałało sad.gif

Kod
lynx -dump http://strona/skrypt.php 1>/dev/null 2>&1


Dodam jeszcze ze skypt nie zwraca zadnych danych (żadnego echo czy print) bo wszystko leci do bazy...

na polecenie whereis lynx dosteję:
lynx: /usr/bin/lynx /etc/lynx.cfg /usr/share/man/man1/lynx.1.gz

Co mam tam wpisać żeby to zadziałało?

====================================
Ok okazało się że trzeba tam takie coś wpisać:
Kod
php -q /home/UZYTKOWNIK/public_html/skrypt.php
.radex
a nie lepiej użyć wget ?

wget http://strona/skrypt.php
MiFlo
co do wget to nie dokońca, symuluje to przegladarke a nie jakbyś uruchamiał skrypt z lini poleceń, a to ma swoje wady
.radex
No i o to chodzi - symulacja normalnego usera. Czasem właśnie tak jest najlepiej.
dr_bonzo
Fixer: w 99% przypadkow musisz wpisac pelna sciezke do lynxa/php/inneg-programu (zalezy od konfigu systemu), bo inaczej "php: command not found"
.radex
dr_bonzo - nie zgodziłbym się. Najważniejsze programy są dodawane do /usr/bin, przez co są widoczne wszędzie. Niezależnie od tego, czy odpala się z terminala czy z poziomu cron'a.

EDIT:

Tak jest u mnie na kompie, na moim serwerze i tak też jest w większości tutków o cronie.
Fixer
prosił bym jeszcze o wytłumaczenie na czym polegają różnice między:

crontab -e ->polecenie inicjalizujące crontab'a pod unixem (odpalamy tylko i wylącznie z trybu konsolowego)
whereis lynx -> podaje nam informacje o ścieżce do lynxa (jeśli wogóle jest zainstalowany)
wget
wget -q -O ->komenda pod serwery unixa
lynx -dump ->alternatywa dla wget, też pod unixa, symuluje przeglądarkę tekstową
curl -s
curl --silent --compressed

co oznacza:
>/dev/null ->wyrzucamy raport do katalogu kosza (używamy gdy w pliku php nie ma echo, print...)
2>&1
php -q ->plik wykonywalny lokalnie na serwerze

Ściąganie całej witryny:
wget -r -l 10 -nc -U --no-parent http://www.jakas.witryna.com.pl

..ciekawsze opcje:
-c ...kontynuacja ściąganego pliku
-i {plik_z_adresami_http/ftp} ...przekazanie wgetowi z pliku adresów z których ma nastąpić ściąganie.
-U ...przełącznik ten pozwala na podanie alternatywnych nagłówków, niektóre serwery Internet Explorera przekierowują do właściwych zasobów, natomiast wgeta odsyłają do /dev/null.
-r ...rekursywne pobieranie katalogów.
-m# ...mirror witryny.

i czy można ustawić proxy i jeśli tak to jak...
Chciałem też zapytać czy mogę zrobić tak by w harmonogramie crona serwer losowo dobierał minuty z przedziału np 10 do 35 min i po wylosowaniu odpalał takie zadanie...
chodzi mi o to by nie zawsze skrypt odpalał się dokładnie w tej minucie...
albo inaczej.... niech skrypt odpala się zawsze o tej samej godzienie/minucie tylko ze w skrypcie php było by ustawione jakieś opuźnienie (jakaś długo trwająca pętla?)
Macie na ten problem jakąś radę?
devnul
zamiast pętli lepiej dać sleep(rand(0,50)); albo podobnie - efektywniej będzie. ale i tak odradzam tego typu działanie. Co do reszty to skoro opisałeś to nie wiem o co pytasz
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.