Moikka!
Harjoittelen ahkerasti PHP-kieltä ja tarvitsisin harjoitustyössäni keinoa, jolla palvelin ymmärtäisi ajaa skriptejä itsekseen tiettyinä kellonaikoina. Miten tämä onnistuu?
Mikä käyttöjärjestelmä on alla? Jos on linux niin crontab.
Eli jos en voi asennella palvelimelle mitään, tämä ei onnistu? Ei nimittäin ole minun palvelimeni vaan palveluntarjoajan.
Täytyykö skripti suorittaa nimenomaan kello X vai kello X:n jälkeen? Jälkimmäisessä tapauksessa skriptin voi suorittaa, kun ensimmäinen kävijä vierailee sivustolla kello X:n jälkeen.
Yllä oleva keino voi tulla kysymykseen, jos kello X jotain pitää muuttua sivustolla. Silloin ei tietenkään haittaa, jos muutos tapahtuu vasta, kun ensimmäinen kävijä saapuu paikalle. Jos kuitenkin pitää lähettää sähköposti tms. tasan kello X, tämä järjestely ei onnistu.
Tehtävänä olisi kansion tyhjentäminen sanotaan vaikka joka päivä kello 12. Jos tyhjennyksen lisäisi tavallisten käyttäjien normaalin surffailun sekaan, eikö se aiheuttaisi odottamattomia tuloksia? Puhun nyt siis kello X:n jälkeen tapahtuvasta skriptin suorittamisesta.
Kuinka kauan kansion tyhjennys vie aikaa? Jos siinä menee sekunnin murto-osa, käyttäjä tuskin huomaa mitään. Muuta ongelmaa tuossa ei mielestäni ole.
Burton kirjoitti:
Eli jos en voi asennella palvelimelle mitään, tämä ei onnistu? Ei nimittäin ole minun palvelimeni vaan palveluntarjoajan.
Tämä riippuu tietysti siitä, onko cron-daemon asennettuna ja toiminnassa kyseisellä palvelimella (kuten usein on) - ja jos on, ei palvelimelle luonnollisesti tarvitse asentaa mitään.
On suhteellisen epätavallista, että palvelimelle, jolle on käyttöoikeus, ei voi asentaa mitään (edes omaan kotikansioonsa; tämä riippuu toki käyttöoikeuden laadusta) - cron-ajastuksiahan voi tavallaan säätää vaikka PHP-skriptillä.
No joo, tyydyin Antin ehdottamaan ratkaisuun eli kansion tyhjentämiseen, kun seuraava henkilö kirjautuu. Lisäsin siihen myös oman vivahteen.
Kiitos avusta!
Jos serveriltä löytyy Plesk (kuten Suncometilta), voit suorittaa tehtävän helposti. PHP:n Cronilla onnistuu ja se on yleensä asenettuna. (Plesk vaan hyödyntää cronia).
1. Kirjaudu Pleskiin sisään.
2. Paina Ajastetut tehtävät (herätyskellon kuva).
3. Paina taulukossa ensimmäisenä olevaa nimeä.
4. Paina "Schedule a Task For ...." (.... = sinun domainosoitteesi).
5. Kirjoita Minuutti- ja Tunti -kohtiin haluamasi arvot.
6. Kirjoita Kuukauden päivä -kohtaan *
ja kirjoita Kuukausi -kohdan Anna arvo -kohtaan *
.
7. Kirjoita Viikonpäivä -kohdan Anna arvo -kohtaan *.
8. Kirjoita Komento -kohtaan /usr/bin/php-cgi ....
(.... = polku tiedostoon, joka suoritetaan. Siihen täytyy laittaa myös public_html tai httpdocs, riippuen serveristäsi.).
9. Paina OK.
Aihe on jo aika vanha, joten et voi enää vastata siihen.