Tere
Voisiko joku teistä kertoa silleen yksinkertaisesti, että mitä tarvitaan että voi tallentaa ajastuksella tietyn lukeman palvelimelle.
Eli omassa tapauksessa ILP:n COP-kertoimen, lämmitystarveluvun ja vuorokauden keskilämpötilan. Näistä olisi ajatus piirtää käppyrä.
Sen verta nyt nettiä kahlanneena, että ilmeisesti cronjobilla saa ajastuksen (löysin jopa palvelimelta) ja ilmeisesti jollain.php skriptillä voi tuon tiedoston ilmeisesti tallentaa palvelimelle.
Onko sulla siis jo scripti mikä tallentaa/tulostaa tarvittavan datan, vai pitäskö tommonen scripti saada aikaiseksi?
Mistä luetaan? Minne talletetaan? Onko esim. ajatuksena ajaa veppihotellista scriptiä joka lukee sun ilmalämpöpumpusta dataa? Vai tarvisko sun oman koneen tunkea dataa veppihotelliin? Vai onko kyse sun omasta palvelimesta?
Crontab vain ajaa ohjelmia ajastetusti.
Lainaus käyttäjältä: khyron - torstai, 10.11.2011, 10:53
Onko sulla siis jo scripti mikä tallentaa/tulostaa tarvittavan datan, vai pitäskö tommonen scripti saada aikaiseksi?
Mistä luetaan? Minne talletetaan? Onko esim. ajatuksena ajaa veppihotellista scriptiä joka lukee sun ilmalämpöpumpusta dataa? Vai tarvisko sun oman koneen tunkea dataa veppihotelliin? Vai onko kyse sun omasta palvelimesta?
Crontab vain ajaa ohjelmia ajastetusti.
Ajatus oli niin että se skripti mikä laskee COP-kertoimen (on jo valmiina ja pyörii sivuillani) niin sitä luettaisiin ja tallennettaisiin samalle palvelimelle teksti tiedostoksi. Eli web-hotellista on kyse (suncomet)
Skripti jota cronjob pyörittää, missä tuo haku ja tallennus on niin sitä ei ole.
Lainaus käyttäjältä: systeemi - torstai, 10.11.2011, 11:27
Lainaus käyttäjältä: khyron - torstai, 10.11.2011, 10:53
Onko sulla siis jo scripti mikä tallentaa/tulostaa tarvittavan datan, vai pitäskö tommonen scripti saada aikaiseksi?
Mistä luetaan? Minne talletetaan? Onko esim. ajatuksena ajaa veppihotellista scriptiä joka lukee sun ilmalämpöpumpusta dataa? Vai tarvisko sun oman koneen tunkea dataa veppihotelliin? Vai onko kyse sun omasta palvelimesta?
Crontab vain ajaa ohjelmia ajastetusti.
Ajatus oli niin että se skripti mikä laskee COP-kertoimen (on jo valmiina ja pyörii sivuillani) niin sitä luettaisiin ja tallennettaisiin samalle palvelimelle teksti tiedostoksi. Eli web-hotellista on kyse (suncomet)
Skripti jota cronjob pyörittää, missä tuo haku ja tallennus on niin sitä ei ole.
Jos vaan tekisit tosta jo olemassa olevasta scriptistä uuden version josta karsit kaikki turhat niin että se tulostaa vaan sun haluamat datat, ja sen jälkeen ajat sitä cronista niin että tulostus ohjataan tiedostoon("scripti >>tiedosto.log" toi >> ohjaa scriptin tulosteen tiedosto.login perään)?
Toi että ensin haet datan jostain jonka tulostat sivulle ja sitten sulla on toinen scripti joka hakee ekalta sivulta datan kuulostaa vähän vaivalloiselta, ja kun muutat ekaa scriptiä joudut luultavasti muuttamaan myös toista.
Sit riippuen vähän liikenteestä ja kauanko datan lukeminen ilpiltä kestää saattaisi olla fiksua tehdä yksi scripti mikä vaan loggaa dataa, ja sitten sivulle se data haetaan tuolta logista.
Mikä ilppi muuten antaa tommosta dataa ulos? Ja kuinka helposti sen sieltä saa?
Lainaus käyttäjältä: khyron - torstai, 10.11.2011, 11:36
Lainaus käyttäjältä: systeemi - torstai, 10.11.2011, 11:27
Lainaus käyttäjältä: khyron - torstai, 10.11.2011, 10:53
Onko sulla siis jo scripti mikä tallentaa/tulostaa tarvittavan datan, vai pitäskö tommonen scripti saada aikaiseksi?
Mistä luetaan? Minne talletetaan? Onko esim. ajatuksena ajaa veppihotellista scriptiä joka lukee sun ilmalämpöpumpusta dataa? Vai tarvisko sun oman koneen tunkea dataa veppihotelliin? Vai onko kyse sun omasta palvelimesta?
Crontab vain ajaa ohjelmia ajastetusti.
Ajatus oli niin että se skripti mikä laskee COP-kertoimen (on jo valmiina ja pyörii sivuillani) niin sitä luettaisiin ja tallennettaisiin samalle palvelimelle teksti tiedostoksi. Eli web-hotellista on kyse (suncomet)
Skripti jota cronjob pyörittää, missä tuo haku ja tallennus on niin sitä ei ole.
Jos vaan tekisit tosta jo olemassa olevasta scriptistä uuden version josta karsit kaikki turhat niin että se tulostaa vaan sun haluamat datat, ja sen jälkeen ajat sitä cronista niin että tulostus ohjataan tiedostoon("scripti >>tiedosto.log" toi >> ohjaa scriptin tulosteen tiedosto.login perään)?
Toi että ensin haet datan jostain jonka tulostat sivulle ja sitten sulla on toinen scripti joka hakee ekalta sivulta datan kuulostaa vähän vaivalloiselta, ja kun muutat ekaa scriptiä joudut luultavasti muuttamaan myös toista.
Sit riippuen vähän liikenteestä ja kauanko datan lukeminen ilpiltä kestää saattaisi olla fiksua tehdä yksi scripti mikä vaan loggaa dataa, ja sitten sivulle se data haetaan tuolta logista.
Mikä ilppi muuten antaa tommosta dataa ulos? Ja kuinka helposti sen sieltä saa?
Itse ILP ei anna dataa vaan logtemp. Sitten olen näiden logtempin *.csv tiedoston pohjalta rakentanut skriptin, joka laskee COP-kertoimen ja tulostaa sen. Sitten tuo tieto on vain lätkäisty kuvan päälle.
Eli joo tuo skripti joka nyt laskee tuon COP:n niin siihen pitäisi vaan laittaa tiedostoon tulostus. Sitten tuota COP-skriptiä ajetaan cronin ajastuksella. Nythän tuo laskenta suoritetaan aina kun sivu ladataan.
Cronjobi joka ajaa scriptiä joka laskee tuon COP:n + piirtää PHP:n GD:n avulla tiedot kuvan päälle ja tallentaa sen serville. Sivulla sitten näytetään se valmis kuva. ;D
Elikkä nyt edistynyt siten, tuon tiedostoon tulostuksen olen saanut tehtyä. Pitäisi saada se tulostamaan siten että uusin tieto on se ensimmäinen rivi. Olen tässä parit päivät yrittänyt (contettia ja mitähän kaikkea muuta), mutta kun edellen tuo koodaus taito on mitä on. Alla olisi skripti joka tulostaa vahan perään uuden. Eli apuja kaivataan.
$tulos4 tulee COP-kerroin laskurilta
$aika = date("H:s"); //aika
$myFile = "rivit.txt";
$fh = fopen($myFile, 'a') or die("can't open file"); //tulostetaan Copkertoimen tulos rivit.txt tiedostoon
$stringData = "{$aika} "; //tulostetaan aika rivit.txt tiedostoon
fwrite($fh, $stringData) ;
$stringData2 = "{$tulos4} \n"; //tulostetaan aika rivit.txt tiedostoon
fwrite($fh, $stringData2);
fclose($fh);
Kokeile tällaista:
$ff on tiedoston nimi/polku.
//Lue filu
$vanhadata = file_get_contents($ff);
// kasaa uusi filu:
$uusidata = $aika."|".$tulos."\n";
$str = $uusidata.$vanhadata;
// Kirjoita uusi filu:
file_put_contents($ff,str);
:)
Lainaus käyttäjältä: weatherc - lauantai, 12.11.2011, 18:10
Kokeile tällaista:
$ff on tiedoston nimi/polku.
//Lue filu
$vanhadata = file_get_contents($ff);
// kasaa uusi filu:
$uusidata = $aika."|".$tulos."\n";
$str = $uusidata.$vanhadata;
// Kirjoita uusi filu:
file_put_contents($ff,str);
:)
Heh kiitos toimii jo. Ei ole näköjään vaikeaa kunhan vain osaa. Itse tosiaan pari päivää yrittänyt vissiin tuhat variaatiota ja ei onnistunut tuolla tavalla miten teit tuon ei käynyt itsellä mielessäkään.
Ja jos joku tarvii ilpin COP:lle laskuria niin mulla olis valmiina.
Miksi uusin tieto ensimäiselle riville? Ei tu mieleen yhtään lokitiedostoa missä uudempi tieto olisi ensimmäisenä.
Sitten käytännölliseltä puolelta toi tulee hyvin raskaaksi ennen pitkään, tossahan joutuu käytännössä ensin lukemaan vanhan lokin kokonaan, sen jälkeen ylikirjoittamaan vanhan tiedoston uusimmalla datalla jonka jälkeen perään kirjoitetaan vielä koko vanha data.
Se on totta että tiedostona oleva loki mikä loki tulee ennenpitkään raskaaksi jos siihen ei laita sakset johonkin kohtaan eli esim että siinä on max 1440 riviä tai jotain.
MySQL on siinä suhteessa helpompi/parempi että se jaksaa enemmänkin dataa eikä tarvi kun upata uusin tieto sisään ja tarvittaessa siivota ulos liian vanhat ;)
Esimerkkinä tuo mun yr.no-skriptin kanta, siinä yli 3 miljoonaa riviä ja porskuttaa ihan nätisti (tosin ideksit olemassa sekä memcache käytössä mutta kuitenkin) :)
Lainaus käyttäjältä: weatherc - lauantai, 12.11.2011, 19:42
Se on totta että tiedostona oleva loki mikä loki tulee ennenpitkään raskaaksi jos siihen ei laita sakset johonkin kohtaan eli esim että siinä on max 1440 riviä tai jotain.
MySQL on siinä suhteessa helpompi/parempi että se jaksaa enemmänkin dataa eikä tarvi kun upata uusin tieto sisään ja tarvittaessa siivota ulos liian vanhat ;)
Esimerkkinä tuo mun yr.no-skriptin kanta, siinä yli 3 miljoonaa riviä ja porskuttaa ihan nätisti (tosin ideksit olemassa sekä memcache käytössä mutta kuitenkin) :)
Joo kyllähän tuo tosi on että se rasittuu ajan myötä. Mutta tuo graafi skripti mikä mulla on niin se pelaa tuolla. On tuohon fiksumpiakin tapoja, mutta ei tieto taito riitä vielä niihin. Pitää sitten jatkossa perhtyä mysql.
Mää tarkotin kyllä sitä että tolla tapaa tiedostoon kirjottaminen on rakenteellisesti raskasta. Jos kirjoittaa lokin perään ei käytännössä ole väliä kuinka iso loki on.
Sen takia kiinnostais tietää mikä on syy että halutaan kirjoittaa lokitiedosto väärinpäin.
Lainaus käyttäjältä: khyron - lauantai, 12.11.2011, 20:48
Mää tarkotin kyllä sitä että tolla tapaa tiedostoon kirjottaminen on rakenteellisesti raskasta. Jos kirjoittaa lokin perään ei käytännössä ole väliä kuinka iso loki on.
Sen takia kiinnostais tietää mikä on syy että halutaan kirjoittaa lokitiedosto väärinpäin.
Ei tällä hetkellä muuta syytä kuin tuo graafiskripti. Eli kymmenen ensimmäisen datat luetaan ja piirretään graafiin.
Siinä tapauksessa kannattaa sit ehdottomasti rajottaa rivien määrä tohon kymmeneen niin ei kirjotuksesta muodostu ajan mittaan ylettömän aikaaviepää. Ja jos haluaa tallettaa historiaa pidemmältä ajalta niin tekee sen toiseen lokiin missä viimisin on aina lopussa.
Löytyiskö vielä apuja tuohon cronjobin toimintaan??
Eli nyt olisi ilp.php joka pitäisi ajastaa.
Palvelimella (suncomet) on tuo cron ajstus missä ajastus aika on valmiina:
cronjob -e /usr/public/ilp.php
Olisko se jotenki noin?
Onko tuo cronjob komento jossain suncometin esimerkissä?
Kun yleensä crontabia pääsee editoimaan kommenolla "crontab -e" tai sitten editoimalla suoraan tiedostoa /etc/crontab vähän riippuen käyttiksestä. Normikäyttäjä ei kyl varmaan pääsee suoraan editoimaan tiedostoa. Eli "crontab -e" komento on todennäköisesti se komento mitä kaipaat, se avaa sinun crontabisi editoriin, joka yleensä on vi.
Vi on yleensä aika epämiellyttävä käyttää jollei osaa komentoja ulkoa, melkein suosittelisin että kasaat sopivan rivin vaikka notepadissä ja sitten copy/pastella crontabiin. http://www.lagmonster.org/docs/vi.html (http://www.lagmonster.org/docs/vi.html) tuolla on vähän apuja vi:n käyttämiseen.
http://adminschoice.com/crontab-quick-reference (http://adminschoice.com/crontab-quick-reference) Tuolla on vinkkejä mitä sinne crontabiin tulee.
Eikö aurinkokomeetalla ollut cPanel paneelina?
Sieltä löytyy muistaakseni "helppo" ja "advanced" versio cronista. Helpossa valitsee vain ajat ja filun ja advancedissa laittaa sen pätkän
* * * * * php -e /var/www/bla/bla/filu.php >/dev/null 2>&1
Tuo loppuhäkkyrä ettei se späammaa pstilaatikkoasi täyteen alta aikayksikön ilmoja ajoista ;)
Nuo tähdet ovat aika jolloin se ajetaan
Lainaus käyttäjältä: weatherc - sunnuntai, 13.11.2011, 23:26
Eikö aurinkokomeetalla ollut cPanel paneelina?
Sieltä löytyy muistaakseni "helppo" ja "advanced" versio cronista. Helpossa valitsee vain ajat ja filun ja advancedissa laittaa sen pätkän
* * * * * php -e /var/www/bla/bla/filu.php >/dev/null 2>&1
Tuo loppuhäkkyrä ettei se späammaa pstilaatikkoasi täyteen alta aikayksikön ilmoja ajoista ;)
Nuo tähdet ovat aika jolloin se ajetaan
Ei virheilmoituksia kannata heittää menemään. Cron lähettää postia ainoastaan jos scripti jotain tulostaa, eli kannattaa tulostaa vain virheilmoitukset ja antaa cronin lähettää niistä postia.
Lainaus käyttäjältä: weatherc - sunnuntai, 13.11.2011, 23:26
Eikö aurinkokomeetalla ollut cPanel paneelina?
Sieltä löytyy muistaakseni "helppo" ja "advanced" versio cronista. Helpossa valitsee vain ajat ja filun ja advancedissa laittaa sen pätkän
* * * * * php -e /var/www/bla/bla/filu.php >/dev/null 2>&1
Tuo loppuhäkkyrä ettei se späammaa pstilaatikkoasi täyteen alta aikayksikön ilmoja ajoista ;)
Nuo tähdet ovat aika jolloin se ajetaan
Tällä se loppupeleissä meni Cpanel helpolla:
php -e public_html/ilppiirto.php >/dev/null 2>&1
Oli vain jostain syystä se ilppiirto.php jotenkin jumissa. Edes se tiedosto minne se kirjoittaa niin ei siellä vielä ollut juuri mitään, mutta johonkin se vain jumitti. Nimesin tuon php:n uudelleen ja nyt näyttäs pelaavan.
Tuolla muuten todella näppärä virheen-tsekkaussivu php-skripteille:
http://www.hcibook.com/meandeviation/php-syntax-check/v5/syntax-check.php
On montaa kertaa tullut käytettyä kun ei löydä vikaa ;D