Olen yrittänyt väsätä itse koodia jonka avulla data-hakemistoa tyhjennetään automaattisesti 1h välein tai 1vrk välein, en onnistu mitenkään :S
Osaako kukaan neuvoo mua? =)
Komenna crontab -e ja lisää sinne @hourly rm /data/* tai @daily rm /data/*
Tämä nyt riippuu ihan työkaluistasi ja ympäristöstäsi...
Jos sinulla on UNIX-pohjainen palvelin (esim. Linux) ja sinne oikeudet croniin, hoituu homma Blazen mainitsemalla tavalla (tarkemmat ohjeet croniin suomeksi).
Windows-palvelimille on myös varmaan jokin vastaava systeemi.
Toisaalta jos haluat käyttää PHP:tä (tai vastaavaa), voit aina tehdä niin että kun skripti suoritetaan, se tarkistaa onko data-hakemiston tyhjennyksestä jo yli tunti ja jos on, niin tyhjentää sen.
Ojoi unohdin kertoa että kyseessä on sisi php-juttu... En kuitenkaan onnistunut php:tä toimimaan se tyhjennysjuttu.
Tässä on yksinkertainen esimerkki:
<?php $uusi = false; if (!file_exists("viimeksi.txt")) { // viime tyhjennyksen aikaa ei tiedetä $uusi = true; } else { $tiedot = file("viimeksi.txt"); if (time() - $tiedot[0] > 60 * 60) { // viime tyhjennyksestä on kulunut tunti $uusi = true; } } if ($uusi) { // tallennetaan tyhjennysaika tiedostoon $tied = fopen("viimeksi.txt", "w"); fwrite($tied, time()); fclose($tied); // poistetaan hakemiston kaikki tiedostot foreach(glob("turha/*.*") as $nimi) { unlink($nimi); } } ?>
Tiedostossa viimeksi.txt lukee, milloin hakemisto on tyhjennetty viimeksi. Jos aikaa on kulunut tarpeeksi, tyhjennetään hakemisto ja tallennetaan uusi aika tiedostoon. Tässä esimerkissä hakemisto "turha" tyhjennetään tunnin välein (60 * 60 sekuntia), mutta näitä asioita on helppo muuttaa.
PHP:ssä on vaan se huono puoli, että se skripti pitää kuitenkin ajaa joko jollain ohjemalla tai manuaalisesti halutun ajan välein.
*nix ympäristössä esim. cronilla ajattaa tuon filun halutun ajan välein, josta seuraa se, että tuota filua ei tarvitse ollenkaan, vaan homman voi tehdä Blazen esittämällä tavalla suoraan.
Toisaalta jos skripti tulee nettisivulle, jossa on kävijöitä, niin silloin tuo PHP-versiokin toimii, mutta koska tarkistus tehdään jokaisen käyttäjän kohdalla, lisää se palvelimen kuormaa promillen sadasosan. :D
EDIT x monta kertaa: Miten voi typottaa näin lyhyeen tekstiin näin paljon?
janne-t:
http://www.webcron.org/index.php?&lang=en ajaa halutun sivun haluttuina aikoina. Jos ei ole crontabi oikkia.
Ja ainahan voi tehdä phpn joka on ikuisessa loopissa olettaen että ei ole maksimi aikaa. (ignore_user_abort ja register_shutdown_handler on kivoja)
Jee kiitos!
Aihe on jo aika vanha, joten et voi enää vastata siihen.