Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 16.05.2009 Skąd: GB Ostrzeżenie: (0%)
|
Witam. O ile dobrze rozumiem skrypt php dziala po stronie serwera po uruchomieniu strony.
Jezeli ktos wchodzi na moja strone to uruchamia moj skrypt PHP. Pytanie brzmi: Czy jest jakas mozliwosc uruchomienia skryptu w okreslonym momencie (data) jezeli nikt w tym dniu nie wejdzie na moja strone? Bo jezeli nikt nie wchodzi na strone to skrypt nie pracuje. Np. Ustawiam na 15.09.2009 ze php wysle e-mail o tresci "jeszcze nikogo nie bylo na twojej stronie" jezeli nikogo nie bedzie. Czy to jest wogole mozliwe do zrealizowania? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Szukaj za "Cron"
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
http://pl.wikipedia.org/wiki/Crontab
W panelach administracyjnych takich jak Direct Admin, cPanel, Plesk masz możliwość ustawienia cronjobs. EDIT: Uprzedzony. Ten post edytował franki01 7.09.2009, 06:24:54 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 16.05.2009 Skąd: GB Ostrzeżenie: (0%)
|
OK! Niby wszystko jasne. Prosze o wyrozumialosc.
Rozumiem ze powinienem uzyc jakiegos programu typu klient-serwer. Program wymusza na serwerze zadzialanie w danym terminie. Czyli nie ma bardziej bezingerencyjnej metody (robie ustawienia na serwerze na za tydzien i moge jechac na wakacje) ? O ile zrozumialem wszystko prawidlowo. Ten post edytował malminiart 7.09.2009, 07:02:24 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Cron to tak w dużym skrócie: program działający na serwerze (czyli ta sama maszyna na której jest skrypt) który to co dany interwał czasowy wykonuje daną komendę. W Twoim przypadku tą komendą będzie uruchomienie skryptu PHP co może wyglądać tak
Kod php -f /sciezka/do/pliku/php.php Wszystko wykonuje się w obrębie jednego serwera.
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 25.11.2008 Ostrzeżenie: (0%)
|
Od biedy pod windą jest też 'harmonogram zadań'.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%)
|
poszukaj w google hasla "webcron" - (polska wersja http://www.webcron.pl/ niestety narazie jest wstrzymana)
Crozin -> chyba lepszym rozwiazaniem w skryptach odpalanych z konsoli jest wstawienie:
A pozniej w cronie:
Ten post edytował MiChaSSs 7.09.2009, 17:56:57 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
@MiChaSSs: Oczywiście, że jest lepszym. Trzeba tylko pamiętać by plik miał jeszcze prawa do wykonywania:
Kod chmod +x /path/to/file Nie wiem czemu sam tego nie napisałem. (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 16.05.2009 Skąd: GB Ostrzeżenie: (0%)
|
Cron to tak w dużym skrócie: program działający na serwerze (czyli ta sama maszyna na której jest skrypt) który to co dany interwał czasowy wykonuje daną komendę. W Twoim przypadku tą komendą będzie uruchomienie skryptu PHP co może wyglądać tak Kod php -f /sciezka/do/pliku/php.php Wszystko wykonuje się w obrębie jednego serwera.OK - Ale jak to sie ma do prostego wlasciciela domeny? Przeciez ja nie mam dostepu do serwera (bezposrednio). Czy mam racje? EDIT: Ok zalapalem (tak mysle). Poprzez webcron moge wywolac dzialanie okreslonego skryptu php umieszczonego na mojej domenie. Czy mam racje? Ten post edytował malminiart 7.09.2009, 23:53:54 |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%)
|
Hmm. Jeśli jesteś właścicielem domeny i nie masz dostępu do serwera - nici.
Jeśli masz dostęp do serwera, jednak firma hostingowa nie zapewnia Tobie możliwości korzystania c Crona - nici. Według mnie sam powinieneś we własnym zakresie się dowiedzieć czy masz dostęp do serwera, czy możesz używać Crona i jeśli możesz stworzyć w pliku skrypt, który bedzie wysyłał Tobie konkretnego maila lub bezpośrednio w Crontabie wpisać polecenie które wyśle Tobie maila każdego dnia i konkretnej porze (; |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%)
|
To zalezy od administratora serwera na, ktorym masz strone.
Jesli juz na prawde potrzebujesz czegos takiego popros admina o dodanie wpisu do cron. Mozesz to zrobic nieco inaczej. Np cron bedzie odpalac Ci skrypt co jakis ustalony czas, a ten skrypt bedzie zarzadzac wieksza iloscia procesow. Na niektorych serwerach admini udostepniaja dostep poprzez shell i wtedy masz wieksze mozliwosci w ustawienia. W Cpanel i nawet ktos tu juz o tym wspomnial jest cronjob. Najlepiej jak kupisz sobie serwer dedykowany, wtedy jestes panem u siebie i masz pelny dostep do serwera. Cron to jest usluga systemowa w Linux i moze odpalac rozne zdazenia najczesciej co minute lub o danej porze dnia, o wyznaczonej godzinie. Jak przeczytasz w Wikipedii o cron to sie wszystkiego dowiesz. U mnie cron zarzadza zezwoleniami do hostow, wysyla mi codzienie ustalone raporty na gg, odpala skrypt php blokowania zalegajacych uzytkownikow sieci, itp .. To co chcesz uzyskac, przy pomocy cron jest banalnie proste do uzyskania. Ten post edytował CyberDuck_ 7.09.2009, 23:26:08 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%)
|
Najlepiej jak kupisz sobie serwer dedykowany, wtedy jestes panem u siebie i masz pelny dostep do serwera. W zupełności się zgadzam. Sam jestem panem u siebie i cieszy mnie to. Jednak jeśli chcesz zaoszczędzić na hostingu możesz poszukać opcji serwerów wirtualnych z dostępem do crona. Przykładem jest az.pl - jednak niestety nie polecam (; Codziennie wirtualny serwer siadał mi u nich na jakiś czas nawet gdy nie obsługiwał praktycznie żadnego ruchu. Jedynie przeprowadzałem własne, lekkie testy. Problem nie był rozwiązany przez cały okres świadczenia usługi, przykre (; |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%)
|
(...) EDIT: Ok zalapalem (tak mysle). Poprzez webcron moge wywolac dzialanie okreslonego skryptu php umieszczonego na mojej domenie. Czy mam racje? Tak, co prawda to jest metoda troche dookola (IMG:style_emoticons/default/winksmiley.jpg) ale jesli nie ma sie dostepu do cron-a na swoim serwerze to tylko to zostaje, pozdrawiam MD |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%)
|
Jeszcze jedna wazna informacja dla Ciebie bo co prawda
ktos tutaj wspomnial o tym ale tylko tak przelotnie. Jesli juz dostaniesz sie do cron to zaczna sie problemy z wykonywaniem skryptu bo nie bedzie odpowiednich uprawnien dla wykonywania skryptu. Wiec to wszystko ustawiasz tak na prawde w dwoch miejscach ... : 1. w cron po wpisaniu w shell 'crontab -e' [enter] wprowadzasz np taki zapis :
co oznacza , ze skrypt php o podanej sciezce powinien sie wykonac co 3 godziny bez raportowania w logach, ale sie nie wykona bo nie ma ustawionych uprawnien dla wykonywania skryptu z poziomu shell/root . Czyli nalezaloby jeszcze dopisac z poziomu shell :
2. a nastepnie wejsc do sudo : visudo [enter] i dopisac np cos takiego :
Dopiero wtedy skrypt bedzie wykonywany tak jak sobie tego zyczysz. Dlatego o ile dostaniesz dostep do cron to nie zawsze admini, i najczesciej tak wlasnie jest , chca sie godzic na nadanie skryptowi specjalnych uprawnien, bo to jest doskonala okazja na wyrzadzenie niezlych szkod na serwerze. Jesli Twoja strona jest odpowiednio czesto odwiedzana to proponowalbym Ci na poczatku skryptu poprostu sprawdzac czy juz minela odpowiednia godzina i ewentualnie jesli tak zrobic to co chcesz. Ten post edytował CyberDuck_ 8.09.2009, 09:36:21 |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%)
|
nie do konca sie zgodze z kolega CyberDuck_ (IMG:style_emoticons/default/smile.gif) Skoro kolega malminiart potrzebuje, aby skrypt wykonywal mu sie co jakis czas, wiec zapewne nie chce, aby ktos mu ten skrypt uruchamial (np. wchodzac przez WWW - no chyba ze umiesci po poza dostepem przez WWW) wiec chmod +x skrypt.php nie jest dobrym wyjsciem (bo ustawiasz, ze skrypt moze uruchomic kazdy), wg mnie lepiej jest zrobic chmod 700 skrypt.php (tutaj tylko uzytkownik, do ktorego nalezy skrypt moze go uruchomic, otworzyc, zapisac). Poza tym, kazdy skrypt powinien zaczynac sie tak, jak to podalem wczesniej, czyli:
po to, zeby nie musiec niepotrzebnie wpisywac do crona php -f za kazdym razem (bedzie to wtedy bardziej czytelne). Co do samego crona, to przeciez admin serwera wcale nie musi dodawac skryptu kolegi do cron-a root-a (sic! (IMG:style_emoticons/default/smile.gif) ), wystarczy, ze zaloguje sie na konto szelowe malminiart i stworzy mu jego tablice cron-a, pozdrawiam MD (IMG:style_emoticons/default/smile.gif) Ten post edytował MiChaSSs 8.09.2009, 11:23:14 |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%)
|
Po co mam pisac dodatkowy skrypt zeby uruchomic inny
to ja nie wiem skoro mozna jednym wpisem zalatwic sprawe z cron ? Co do chmod zgodze sie, ale jesli chcesz sie tak juz przepychac to chmod 0700 pozwoli jedynie wykonac :
Tak wiec jesli chcesz aby kazdy to wykonal bez specjalnego logowania sie do shell np poprzez ftpd to musialoby byc chmod 0755 :
ale ja sie tam nie znam ... (IMG:style_emoticons/default/worriedsmiley.gif) Poprostu nadanie praw poprzez +x ma najwyzszy priorytet procz nadania wlasciciela do pliku i jest wygodniejsze bo w momencie pisania skryptu zazwyczaj piszacy chce miec wglad do sprawdzania czy to dziala, a najlatwiejsza i najszybsza metoda na to jest wpisanie z linii komend php - f ... albo wywolanie teg skryptu jak zwykla strone. Jesli ustawisz w 700 to nie bedziesz mogl tego sprawdzic z poziomu httpd. Zamiast php -f mozna dac php -q .
Ostatnio mialem przy pisaniu skryptu obslugujacego ekg2 problem z -f, a w to miejsce pomoglo -q Co do nadawania uprawnien z root moze i masz racje. Ja zawsze zazwyczaj wykorzystywalem w skryptach : i stad wymagania wiekszych uprawnien niz zwykle. Moze przy wyslaniu z cron email nie potrzeba juz dodatkowych wpisow do visudo. Trzeba sprawdzic. Napisalem to po to zeby wiedzial z czym to sie moze wiazac jesli nadal skrypt nie bedzie chcial sie wykonac. Ten post edytował CyberDuck_ 8.09.2009, 13:33:06 |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%)
|
Po co mam pisac dodatkowy skrypt zeby uruchomic inny to ja nie wiem skoro mozna jednym wpisem zalatwic sprawe z cron ? (...) A gdzie ja tak napisalem? (IMG:style_emoticons/default/smile.gif) Piszac to na poczatku kazdego pliku php:
"mowisz" konsoli, ze jest to plik, ktory ma byc interpretowany jako plik PHP (dziala to tylko jesli PHP jest skompilowane jako CGI) i nie jest mu potrzebny Apache itd. - stad wlasnie opcja -q. Nie przepycham sie, tylko chce kolege nauczyc jak to dobrze zrobic, a nie zeby tylko dzialalo. Jesli kolega chce to wrzucic do cron-a to znaczy, ze nie chce zeby ktos mu ten plik sam odpalal stad chmod 700. I nieprawda jest ze nie mozna podgladnac pliku ktory ma chmod 700, bo przeciez zamiast przekierowywac wyjscie do /dev/null w cron-ie mozna to skierowac do pliku logujacego (owszem, nie bedzie mogl go wykonac kiedy mu sie to podoba bo cron sie tym zajmie), wiec taki wpis zalatwi sprawe:
pozdr MD (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%)
|
Mozna i tak. Moze ja nie doczytalem gdzie dopisujesz ten
wpis na poczatku, tylko, ze to nie dziala na kazdym serwerze. Na niektorych poprostu wywali mu blad, ale ok. Ma dwa sposoby do wyboru. Ja wole od razu wykonywac plik php z interpretera, na koncu dopisujac logi lub tez nie wedlug uznania. Zazwyczaj wylaczam logi bo pozniej mi przychodzi masa maili z niepotrzebnymi wpisami od root (IMG:style_emoticons/default/blinksmiley.gif) Zazwyczaj i tak tam najczesciej nic nie ma ciekawego procz tego, ze skrypt wykonal sie prawidlowo ... lub jakie to operacje zostaly wykonane. Ja sie zabezpieczam haslem lub w inny sposob na poczatku skryptu. Mozna taki skrypt wywolac z parametrem, ktorym jest np wlasnie haslo dostepu do skryptu php i po problemie. |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 16.05.2009 Skąd: GB Ostrzeżenie: (0%)
|
no to zesmy pogadali panowie... teraz to ja juz ni ch***** nic nie nierozumiem. (IMG:style_emoticons/default/sciana.gif)
Chyba zaloze serwer dedykowany i pobawie sie na swoim podworku (IMG:style_emoticons/default/Rkingsmiley.png) Ten post edytował malminiart 9.09.2009, 00:44:47 |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%)
|
Nooo juz nie przesadzaj (IMG:style_emoticons/default/winksmiley.jpg) wszystko masz ladnie opisane - jakby co pytaj. Najlepiej postaw sobie jakiegos linux-a na swojej maszynie i sie pobaw, pozdr MD (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 17:50 |