CUPRINS
- Introducere
- Ce extensii de fișiere pot folosi pentru funcția CRON?
- Cum se utilizează funcția CRON pe serverul ionos.ro
- Cum se creează căi corecte către foldere (script)?
- Alte exemple de utilizare a funcției CRON
- Cum se execută periodic scripturi pentru diferite versiuni, de exemplu PHP sau Python?
- Cum să preveniți executarea fișierului CRON de către orice utilizator?
Introducere
Executarea periodică a scripturilor prin „Cron” se bazează pe apelarea programată a unor scripturi denumite corespunzător, aflate în folderul principal al serverului tău de la ionos.ro Intervalul de timp pentru executarea scriptului poate fi definit cu precizie în funcție de următoarele intervale:
- la fiecare cinci minute ,
- la fiecare oră (hourly) ,
- zilnic (daily),
- săptămânal (weekly),
- lunar (monthly),
- la o oră strict determinată (cu o precizie de 5 minute).
Ce extensii de fișiere pot folosi pentru funcția CRON?
Extensiile disponibile pentru funcția CRON sunt:
- .php
- .pl
- .cgi
- .py
Cum se utilizează funcția CRON pe serverul ionos.ro
Pentru a utiliza funcția CRON, trebuie să plasați în folderul principal al serverului un script denumit conform următoarei reguli:
cron-[hourly|daily|monthly|weekly].[extensia]
Orele exacte de rulare:
- hourly– la oră fixă *:00 ,
- daily – în fiecare zi la 1:15,
- weekly – sâmbăta la 1:30,
- monthly – în prima zi a fiecărei luni la 1:45.
Cum se creează căi corecte către foldere (script)?
În timpul rulării serviciului CRON, se efectuează o izolare a folderului (numit popular „chroot”) din punctul de vedere al utilizatorului către folderul:/home/ftpmg/public_html/
Pentru funcția CRON, folderul principal (root) devine /public_html/. Atunci când creați căi în scripturile rulate prin CRON, trebuie să folosiți referințe de forma: /script.php. Toate celelalte referințe, de exemplu /public_html/script.php, vor fi incorrecte.
Alte exemple de utilizare a funcției CRON
cron-[ora].[extensia]
Fișierul „cron-13.php” va fi rulat în fiecare zi la ora 13:00 de către interpretorul PHP.
Fișierul „cron-04.php” va fi lansat la ora 04:00 de către interpretorul PHP.
cron-[hhmm].[extensia]
Fișierul „cron-1545.php” va fi rulat în fiecare zi la ora 15:45.
Acuratețea maximă este de 5 minute – de exemplu, un fișier cu numele „cron-1546.php” nu va funcționa.
cron-[xx]min.[extensie] – unde xx reprezintă minutele. Valorile permise sunt: 5, 10, 15, 20, 30
Fișierul „cron-5min.php” va fi rulat la fiecare 5 minute, începând din momentul publicării fișierului în folderul principal al serverului de la ionos.ro.
Cum se execută periodic scripturi pentru diferite versiuni, de exemplu PHP sau Python?
Dacă doriți să executați periodic un script pregătit în limbajul PHP, de exemplu pentru versiuni diferite, adăugați numărul versiunii la extensia fișierului în acest scop, de exemplu:
- cron-1545.php – va fi rulat zilnic la ora 15:45 pentru versiunea PHP setată în preferințele serverului sau pentru o anumită locație prin intermediul fișierului .htaccess.
- cron-1545.php53 – va fi rulat zilnic la ora 15:45 pentru versiunea PHP 5.3
- cron-1545.php7 – va fi rulat zilnic la ora 15:45 pentru versiunea PHP7
Dacă doriți să executați periodic un script pregătit în limbajul Python, de exemplu pentru versiunea 2.7 sau 3.6, adăugați numărul versiunii la extensia fișierului în acest scop, de exemplu:
- cron-1545.py – va fi rulat zilnic la ora 15:45 pentru Python versiunea 2.7
- cron-1545.py3 – va fi rulat zilnic la ora 15:45 pentru Python versiunea 3.6
Cum să preveniți executarea fișierului CRON de către orice utilizator?
Mediul care generează rularea periodică a scripturilor este identic cu mediul în care sunt executate scripturile pe serverele virtuale. În practică, acest lucru înseamnă că o astfel de rulare diferă foarte puțin de o simplă solicitare GET prin protocolul HTTP.
Pentru a preveni executarea fișierului cron de către orice utilizator, blocați accesul la acesta în fișierul „.htaccess”. Puteți face acest lucru introducând următorul cod în conținutul fișierului „.htaccess”:
:Location /cron-daily.php Access deny all
Fișierul „.htaccess” cu conținutul care blochează apelarea fișierului CRON trebuie plasat în folderul principal al serverului. În linia care începe cu sintaxa „:Location”, definiți numele fișierului CRON pe care doriți să îl blocați de la executare.
Instrucțiuni suplimentare privind funcționarea CRON în ionos.ro:
În situația în care, de exemplu, fișierul CRON se află într-un subfolder, condiția pentru executarea acestuia va fi fie apelarea manuală a acestuia în browser, fie plasarea în folderul principal al serverului a unui fișier CRON de pornire (trigger).
Dacă un anumit script PHP se execută corect atunci când este apelat din browser, dar nu se întâmplă același lucru când este apelat dintr-un fișier cron, vă sugerăm să mutați conținutul scriptului în orice alt fișier PHP și să rulați acest script din fișierul cron folosind o comandă similară cu cea de mai jos:
<?php system('wget --delete-after http://cont.ionos.ro/fisire.php'); ?>
În cazul în care scriptul apelat necesită autentificare HTTP:
<?php system('wget --delete-after --user=UTILIZATOR --password=PAROLA http://cont.ionos.ro/fisier.php'); ?>
În cazul în care scriptul este apelat folosind protocolul HTTPS:
<?php system('wget --delete-after --no-check-certificate https://cont.ionos.ro/fisier.php'); ?>
În mod analog, folosind comanda curl:
<?php system('curl -f -s http://cont.ionos.ro/fisier.php'); ?>
În cazul în care scriptul apelat necesită autentificare HTTP:
<?php system('curl -f -s -u UTILIZATOR:PAROLA http://cont.ionos.ro/fisier.php'); ?>
În cazul în care scriptul este apelat folosind protocolul HTTPS:
<?php system('curl -f -s -k https://cont.ionos.ro/fisier.php'); ?>
În cazul în care scriptul apelat conține caractere speciale în adresă, linkul trebuie inclus suplimentar între ghilimele:
<?php system('curl -f -s -k "https://cont.ionos.ro/fisier.php?id_conf=123&key=1EjEI7qkphxpK83PIZpM"'); ?>
Găzduire securizată pentru site-ul dvs. web
Am pregătit un loc în care site-ul dvs. web și poșta e-mail vor fi confortabile.
