Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Viestit - hss-kobolt

Sivuja: [1]
1
Rakensin peilipalvelimen, ubuntu 12.04.2 asennuksen päälle.
Peili näyttää toimivan, ja koneiden pakettilistausten päivitys toimii. Myös asiakaskoneiden päivitykset näyttäisi toimivan, mutta:

On vain yksi kysymys.
Kuinka voisin saada varmuuden siitä, että peilin kaikki tiedostot ovat ehjiä. Kuinka tarkistaa kerralla kaikkien peilattujen tiedostojen MD5 summat verraten ne lähdepalvelimien vastineisiin?

Tiedostoista osa oli ladattu omassa koneessani jo aiemmin saman /etc/apt/mirror.list tiedoston asetuksilla jota myöhemmin päivitin. Mutta koska siirsin kaiken, reilut 80Gt toiseen koneeseen kopioimalla ja monen latauskerran olin joutunu aiemmin keskeyttämään kun tarvi (hitaan) netin kaistan muuhun.

Toimisiko md5 summat sisältävien tiedostojen harkittu tuhoaminen tms.
Koodia: [Valitse]
/var/spool/apt-mirror/var/
-hakemistosta? Vai onko tähän joku valmis ratkaisu jolla esim komento:

Koodia: [Valitse]
sudo apt-mirror
saadaan tilanteeseen, jossa se tarkistaa kaikki peilatut tiedostot saadakseen selville mitkä tiedostoista on jo olemassa ja ehjiä? Kenties jopa auttaisi tuhoamaan vialliset ja hakisi tilalle ehjät.

ei realistista tarkistaa kaikkia 111650 kpl käsin.

pala oppaasta:

Koodia: [Valitse]
man apt-mirror
Koodia: [Valitse]
      /var/spool/apt-mirror/mirror
               Mirror places here

       /var/spool/apt-mirror/skel
               Place for temporarily downloaded indexes

       /var/spool/apt-mirror/var
               Log files placed here. URLs and MD5 summs also here.

EDIT:

Hoksasin tuon varmistuksen lopulta itse, kirjoittamani skripti:

Koodia: [Valitse]
cd /home/user
rm /home/user/mirror-poistettavat.txt
md5deep -r /var/spool/apt-mirror/mirror/*.com -x /var/spool/apt-mirror/var/MD5 > /home/user/mirror-poistettavat.txt

2
Tiedostojärjestelmä on jo ext3. tuon "FSCKFIX=yes" muutankin heti.

sit tuo puolen asteen tarkkuus.

tuon ds18b20 -anturin tiedoissa mainostetaan kyllä tiedon lukemisen tarkempaan olevan mahdollista:

Lainaus
The resolution of the temperature sensor is user-configurable to 9, 10, 11, or 12 bits, corresponding to increments of 0.5°C, 0.25°C, 0.125°C, and 0.0625°C, respectively. The default resolution at power-up is 12-bit.

Vaatinee varmaan muutoksia joko lukukomentoihin tai anturin EEPROM muistiin ennen käyttöä.
Jos kohinasta on kyse, pitänee siirtyä useisiin lukukertoihin ja järjestää talteen vain keskiarvo tms.

pieni huomio:
digitemp voidaan kuitenkin säätää antamaan tulos useamman desimaalin tarkkuudella, joita oletuksella tulee 3. Voisi ainakin kuvitella, että digitemp olisi rakennettu myös lukemaan anturia useammallakin kuin yhdeksällä bitillä. Eli ettei pelkkää tulostetta luotaisi epäuskottavan tarkaksi. Kommentoikaa.

Tuon anturin PDF dokumentissa (DS18B20) sivulta 3/22 (219kt) http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf
kerrotaan edelläoleva lainattu teksti.

3
Tiedon lukemiseen käytän digitemp -ohjelmaa:
INFO: http://linux.fi/index.php/Digitemp

1-wire liitännän olen toteuttanut RS-232 portissa seuraavalla adapterilla sen toimintavarmuuden vuoksi:
http://tietomyrsky.fi/tuotteet/1-wirebus/

Niille, jotka eivät tunne 1-wire väylää, linkki wikipediaan (englanniksi):
http://en.wikipedia.org/wiki/1-Wire
-------------------------------------------------------------------------------------------------------

Lainaus
Ei kai levyntarkistus vaadi mitään käyttäjän toimia? Eikös se vain pyydä painamaan esciä, jos haluaa skipata tarkistuksen. Jos siis puhutaan siitä fsck-tarkituksesta, joka tapahtuu oletuksena tietyllä käynnistysvälillä, olikohan jotain 30 käynnistystä. Ja voihan tuon tarkistuksen ottaa pois päältäkin, jos haluaa.

fsck:sta on kyse, mutta palvelimessa EI OLE näyttöä eikä näppäimistöä palvelimen hoitaessa tehtävää.

Lainaus
Toi kysely levyntarkistuksen yhteydessä on todennäköisesti vakava merkki kiintolevyn leviämisestä, mikäli kone on kiinni upsissa, ja kaikki sammutukset ovat normaaleja. Oletko tutkinut kiintolevyn toimivuutta lokeista.

Kiintolevyn virheille on looginen syy koska palvelin sammutetaan toistaiseksi raa-asti virrat katkaisemalla.
Olen muuttanut webminillä kiintolevystä välimuistin pois käytöstä palvelimen nopeuden kustannuksella.
Palvelimen virransyöttöä ei toistaiseksi ole UPS-varmennettu. Tätä olen harkinnut.

Kaipaa hiomista.
Esim sammutus atx-virtakytkimestä hallitusti. Tähän lienee ohjeita foorumilla (muistan lukeneeni joskus)


Lainaus
Yritin vähän tavailla speksejä, ja ehkä uskaltaisin sitäkin kokeilla, mikäli laite olisi oma tekemäni, ja osaisin itse tehdä toisen samanlaisen laitteen.

Mulla on tarkoitus rakentaa kotona olevaan palvelimeen täsmälleen samat ominaisuudet testaukseen ja näiden skriptien kehittelyyn. Tuo toinen anturi, siis DS18B20 (B-anturi) poikkeaa aiemmasta sen ohjelmallisen muokattavuuden vuoksi.

Ensinnäkin tehon syöttö ns "Parasite-Power" -moodissa ei toimine B-anturin suurimmalla resoluutiolla vaan on kytkettävä +5v syöttö mukaan.

Lainaus
Tosin ohjelmaasi pitää tehdä muutoksia: jakaa nykyinen arvo 8:lla, jotta arvo olisi oikea. Ainakin niin päättelisin spekseista.

Näin voisi ajatella. Toisaalta itse digitemp asetuksiin en ole tehnyt mitään muuta kuin lokiin liittyvää muotoilua sekä ihan alussa

HUOMATKAA: komentoa "digitemp" ei ole olemassa, vaan olen tehnyt itselleni symbolisen linkin "digitemp" hakemistoon: /usr/bin/
ja tämän kohteena on (muistaakseni tämä näistä kolmesta) /usr/bin/digitemp_DS2490

seuraavat kolme komentoa toimivat suoraan mm -h parametrilla:
Koodia: [Valitse]
/usr/bin/digitemp_DS2490
/usr/bin/digitemp_DS9097
/usr/bin/digitemp_DS9097U

Anturin ensiasennuksen tein seuraavalla komennolla:
Koodia: [Valitse]
sudo digitemp -i -s/dev/ttyS1
Lukunopeudella ei ole tässä merkitystä, koska tiedon luku anturilta ( joita voi olla kymmeniä) ei kestä muutamaa sekuntia kauempaa yhdelle anturille. Mittausväli on käytännössä ainakin 10 min.

Lainaus
Tosin rehellisyyden nimissä tunnustan, etten aivan ymmärtänyt kuinka data liikkuu ko. anturin ja 1 johto väylän välillä, vaikka yritinkin sitä hoksata.

Tähän vastasinkin jo linkkien avulla.

Lainaus
Olethan huomannut. Vaikka näyttötarkkuus on 12 bittiä, niin merkitseviä bittejä on vain 9. Eli molemmat näyttävät 0,5 asteen tarkkuudella. Se mistä toi voi johtua on ehkä kohinasta, tai jostain muusta.

Tarkoitatko anturin lämpökohinasta? Itse data on ykköstä ja nollaa, eli sitä kone tuskin väärin ymmärtää..

Lainaus
ästä en ymmärrä ROM-kohtaa, jotain sensorin ID:tä vai mitä?

Kyllä. Jokaisella anturilla on oma yksilöllinen sarjanumero / "identiteettitieto", jolla erotetaan väylälle liitetyt laitteet, mikä niistä halutaan lukea. Koska anturit ovat rinnankytkettyjä eli toisinsanoen väylällä vaikuttava jännite vaikuttaa kaikissa antureissa samanaikaisesti. Tämä "ROM koodi" haetaan antureiden asennuksen yhteydessä .digitemprc -tiedostoon, josta olen kopioinut tiedot asetustiedostoihin.

lisätietoa:
Koodia: [Valitse]
man digitemp
Lainaus
Sitten paha sanoa toisen anturin toimivuudesta suoraan, kun puuttuu Sensorin takana olevan laitteen piirikuva ja firmis. Firmikseen saattaa joutua tekemään jotain pientä muutosta, mutta en ole ihan 100 varma, kun ei valjennut kuinka anturilta luetaan tietoa ja kuinka sinne kirjoitetaan tietoa. Samaa johtoa pitkin kuitenkin, mutta missään en huomannut kuinka määritelään sisääntuleva ja ulosmenevä. Todennäköisesti aluksi kirjoitetaan oikealla nopeudella kutsu, johon kirjoitetaan myös sisään menevä data, ja sitten hetken päästä laite vastaa.

Tekninen määrittely löytyy 1-wire väylän kuvauksesta. Väylä on ennalta määritelty kuinka tietoa käsitellään.

pump:
Lainaus
kyllä ne kaikki ds18*** anturit käy sekaisin samaan linjaan pitää vaan ajaa se asetus komento aina uuden anturin lisäämisen jälkeen.
"digitemp_DS9097 -i -s/dev/ttyS0  -c digitemp.conf "
ilman -c digitemp.conf tekee ajettavaan hakemistoon .digitemprc tiedoston

Tämä oli tärkeä tieto. Tuota en itsekään hoksannut, kuinka ulostulon voi syöttää suoraan konfiguraatioon (esim digitemp.conf)
Konfiguraatiot olen rakentanut toistaseks käsityönä copypaste tyyliin. Vaikka joutuuhan nää lokitiedostot kertomaan konfiguraatioissa.

Pump, kiitokset.

4
Alkuperäinen idea lähti liikkeelle maidon vastaanottajan toiveista nähdä tarkempaa tietoa kuormaan poimittavasta tilaerästä.


Olen asettanut nyt koko palvelimen käynnistymään uudelleen kerran viikossa, koska aiemmin kone oli yli kuukauden tallentamatta mitään.

Palvelimessa on siis (jos ei huomattu) apache2 + php5 +mysql, sekä verkolle dhcp palvelin + proxy. Riittää pelkän ristikytketyn kaapelin kytkentä kotikoneen ja tämän väliin. Tästä ei ole verkkoyhteyksiä normaalisti mihinkään.

Kysymyksinä on mm.

1. Kuinka asettaa oletusvastaus levyntarkistukselle kun se tapahtuu, ettei siinä vaiheessa jäädä odottamaan käyttäjän toimia?

2. Ehdotuksia paremmista / varmemmista tavoista hoitaa hommat palvelimessa.

Tämän rustasin viikon aikana. Varmasti virheitäkin on. Jatkuvasti tuli uusia ideoita joita piti listata paperille muistin tueksi. Aiemmasta toteutuksesta poiketen on ainakin erikoismerkit ja skandit kunnossa. Silti tässä on nyt muille yksi köyhä tapa tallennella seurantalämpötiloja.

5
Olen rakentanut ubuntu 8.04 (hardy) palvelimen, joka mittaa maidontuottajalle maitosäiliön lämpötilaa tunnin välein, lokitiedostoihin vuorokausittain ja kuukausittain sekä MYSQL tietokantaan 10 min välein, joita voi tutkia palvelimessa olevalla DTGRAPH sovellutuksella.

Palvelin toimii suht. moitteettomasti. Ongelma on eniten se, ettei kone käynnisty täysin takuuvarmasti kuukausien kuluessa ilman tarkkailua. Nähtävästi kiintolevyn tarkistus jää kysymään käyttäjältä mitä tehdään, eikä se käy palvelimessa johon ei olla yhteydessä kuin tiedon tulostuksen yhteydessä. Toinen ongelma on anturin
DS18S20+ erottelukyky.
http://datasheets.maxim-ic.com/en/ds/DS18S20.pdf Sen pienin mahdollinen esitystarkkuus on käytännössä 0,5 astetta.
Parannusehdotuksia kaipaan.

Ensinnäkin kelpaako anturi DS18B20 ilman mitään muutoksia kunhan vain vaihdetaan? TODNÄK käy.

datasivu:
http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf

Tämän erottelukyky on kuitenkin binäärinä 0.0625 astetta (oletusresoluutio on 12 bittiä virran kytkeytyessä), kun aiemmassa se on 0,5 astetta (9 bittiä).

Ero on varsin merkittävä.

Pastaan tähän skriptit + infoa. Skriptien ajastus on asetettu webminin osiossa "System" --> "Scheduled Cron Jobs".

konfiguraatiot lokeja varten:

digitemp-kk-lokiin.conf:
Koodia: [Valitse]
TTY /dev/ttyS0
LOG_TYPE 1
LOG_FILE /var/www/LOKI/kuluva-kk/data.txt
LOG_FORMAT "<CENTER>%d.%m.%Y klo: %H:%M -- <B> %.1C </B> astetta.</CENTER>"
SENSORS 1
ROM 0 0x10 0xBA 0x4D 0x83 0x01 0x08 0x00 0xBA

digitemp-pvm-lokiin.conf
Koodia: [Valitse]
TTY /dev/ttyS0
LOG_TYPE 1
LOG_FILE /var/www/LOKI/kuluva-pv/data.txt
LOG_FORMAT "<CENTER>%d.%m.%Y klo: %H:%M -- <B> %.1C </B> astetta.</CENTER>"
SENSORS 1
ROM 0 0x10 0xBA 0x4D 0x83 0x01 0x08 0x00 0xBA

Siirtoskriptit:

kuukausilokille:
Koodia: [Valitse]
#!/bin/bash

perushakemisto=/var/www/LOKI/HISTORIA/

mkdir $perushakemisto

ToinenOsa=$(date +kuukausi-lokit-%Y)/
mkdir $perushakemisto$ToinenOsa

loppuosa=$perushakemisto$ToinenOsa$(date +%m)$(date +-%Y)/

mkdir $loppuosa

cp /var/www/LOKI/kuluva-pv/index.php /var/www/LOKI/kuluva-kk/
mv /var/www/LOKI/kuluva-kk/data.txt $loppuosa
cp /var/www/LOKI/kuluva-kk/index.php $loppuosa



exit 0

päiväkohtaiselle lokille:
Koodia: [Valitse]
#!/bin/bash

perushakemisto=/var/www/LOKI/HISTORIA/
mkdir $perushakemisto

vuosihakemisto=$perushakemisto$(date +pvm-lokit-%Y)/
mkdir $vuosihakemisto

KKhakemisto=$vuosihakemisto$(date +%m-%Y)/
mkdir $KKhakemisto

PVhakemisto=$KKhakemisto$(date +%d-%m-%Y)/
mkdir $PVhakemisto

mv /var/www/LOKI/kuluva-pv/data.txt $PVhakemisto
cp /var/www/LOKI/kuluva-pv/index.php $PVhakemisto

exit 0

Konfiguraatio MYSQL tietokannalle:

digitemp-mysql.conf
Koodia: [Valitse]
TTY /dev/ttyS0
LOG_TYPE 1
SENSORS 1
ROM 0 0x10 0xBA 0x4D 0x83 0x01 0x08 0x00 0xBA


Tietokannan kirjausskripti:

digitemp_mysql.pl
Koodia: [Valitse]
#!/usr/bin/perl -W

# DigiTemp MySQL logging script
# Copyright 2002 by Brian C. Lane <bcl@brianlane.com>
# All Rights Reserved
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
#
# -------------------------[ HISTORY ]-------------------------------------
# 08/18/2002  Putting together this MySQL logging script for the new
# bcl         release of DigiTemp.
#
# -------------------------------------------------------------------------
#CREATE table digitemp (
#   dtKey int(11) NOT NULL auto_increment,
#   time timestamp NOT NULL,
#   SerialNumber varchar(17) NOT NULL,
#   Fahrenheit decimal(3,2) NOT NULL,
#   PRIMARY KEY (dtKey),
#   KEY serial_key (SerialNumber),
#   KEY time_key (time)
# );

# GRANT SELECT,INSERT ON digitemp.* TO dt_logger@localhost;
# IDENTIFIED BY '';
#
# -------------------------------------------------------------------------

use DBI;

# Database info
my $db_name     = "stats";
my $db_user     = "dtgraph";
my $db_pass     = "";


# The DigiTemp Configuration file to use
my $digitemp_rcfile = "/usr/digitemp-mysql.conf";
my $digitemp_binary = "/usr/bin/digitemp";
# EDELLINEN OLI /usr/local/bin/digitemp JA ON NYT MUUTETTU!

my $debug = 0;
my $var1 = shift;
if (defined($var1) && $var1 eq 'debug') {
    $debug = 1;
    print "Debug moodi on nyt päällä\n";
}


# Connect to the database
my $dbh = DBI->connect("dbi:mysql:$db_name","$db_user","$db_pass")
          or die "I cannot connect to dbi:mysql:$db_name as $db_user - $DBI::errstr\n";


# Gather information from DigiTemp
# Read the output from digitemp
# Output in form SerialNumber<SPACE>Temperature in Fahrenheit



# -------------------------------------------------------------------------------------------------------


#print "Starttaan digitemp -ohjelman...\n";

open( DIGITEMP, "$digitemp_binary -q -a -o\"%R %.2F\" -c $digitemp_rcfile |" );

#print "Alan lukea asteet portista\n";

while( <DIGITEMP> )
{
  print "$_\n" if($debug);
  chomp;

  ($serialnumber,$temperature) = split(/ /);

  #Safety limits: erroneous data tends to be very high or very low
  #This usually happens when the sensor is having trouble (water, bad connection)
  if ($temperature < -80 || $temperature > 180) {
      print "Erroneous data for $serialnumber: $temperature ... Skipping";
      #continue;
  } else {
      $sql="INSERT INTO digitemp SET SerialNumber='$serialnumber',Fahrenheit=$temperature";
      print "SQL: $sql\n" if($debug);
      $dbh->do($sql) or die "Can't execute statement $sql because: $DBI::errstr";
  }
}

close( DIGITEMP );

$dbh->disconnect;


Ehdollinen uudelleenkäynnistys koko koneelle:
(uudelleenkäynnistys toteutuu mikäli kumpaa tahansa lokitiedostoa on muokattu viimeksi yli 3 tuntia sitten)
Koodia: [Valitse]
#!/bin/bash

if [ -f /var/www/LOKI/kuluva-pv/data.txt ] && [ -f /var/www/LOKI/kuluva-kk/data.txt ];
then

# molemmat ovat olemassa ja ovat tiedostoina.

pvlokiviive=$(stat -c %Y /var/www/LOKI/kuluva-pv/data.txt)
kklokiviive=$(stat -c %Y /var/www/LOKI/kuluva-kk/data.txt)

nyt=$(date +%s)

pverotus=$(($nyt - $pvlokiviive))
kkerotus=$(($nyt - $kklokiviive))

# sekunteina kolme tuntia on 10800
max=10800

function uusitarttaus {
                echo Kirjaan vikalokiin ja käynnistän koko koneen uudelleen nyt.
                vikalokiwriter.cgi
kirjaa-loki.sh
                echo odotan 10 sekuntia ja sit reboot
                sleep 10
                reboot
}

if [ $pverotus -gt $max ];
then
echo
echo Päiväloki on $pverotus sekuntia vanha. maksimi on $max
echo
echo kk-loki kirjattu $kkerotus sekuntia sitten.
echo pv-loki kirjattu $pverotus sekuntia sitten.
uusitarttaus

elif [ $kkerotus -gt $max ];
then
echo
echo Kuukausiloki on $kkerotus sekuntia vanha. maksimi on $max
echo
echo kk-loki kirjattu $kkerotus sekuntia sitten.
echo pv-loki kirjattu $pverotus sekuntia sitten.
uusitarttaus
else
echo
echo kk-loki kirjattu $kkerotus sekuntia sitten.
echo pv-loki kirjattu $pverotus sekuntia sitten.
echo Jos $max sekuntia ylittyy, palvelin käynnistyy uudelleen.
echo
#digitemp -a -q -o"pvm: %d.%m.%Y ---- klo: %H:%M  ----- %.1C astetta "
echo
fi


else
echo AINAKIN TOINEN KIRJAUSLOKI PUUTTUU. SUORITAN YLIMÄÄRÄISEN MITTAUKSEN KUMPAANKIN LOKIIN.
kirjaa-loki.sh
fi

Seuraava skripti sattuu olemaan PHP toteutus, koska en viitsinyt alkaa rakentamaan samasta bash versiota.

vikalokiwriter.cgi
Koodia: [Valitse]
#!/usr/bin/php
<?php
$pvdata 
"/var/www/LOKI/kuluva-pv/data.txt"// esittely


//jatketaan tiedon keruuta, jos tiedosto on olemassa
if (file_exists($pvdata)) {
   
//luetaan tiedoston muokkausaika, sekä lasketaan sen ja nykyhetken erotus
   
$muokkausaika filemtime($pvdata);
   
$nyt_aika date("U");
   
$erotus = ("$nyt_aika"$muokkausaika");

// luodaan kokonaislukumuuttujat aikaa varten
$vuorokausina = (integer) ("$erotus86400); // valmis kokonaisluku
$tunteina = (integer) (("$erotus86400) / 3600); // valmis kokonaisluku
$minuutteina = (integer) (("$erotus3600) / 60); // valmis kokonaisluku
$sekunteina = (integer) (("$erotus60) / 1); // valmis kokonaisluku

// tämän tiedoston suoritusta ei ole ajastettu.
// tämän tiedoston suorittaa vain /usr/bin/ehdollinen-reboot.sh

// seuraava ehto on poistettu siksi, että tämä tiedosto lisää vikalokiin tekstiä
// aina, kun tämä suoritetaan.
// if (($erotus) > 10800) { // onko muokattu yli kolme tuntia sitten (= 10800 sekuntia)
{
//jatketaan, jos vikaloki.txt on olemassa
if (file_exists("/var/www/vikaloki/vikaloki.txt")) {
//avataan vikaloki kirjoitustilassa ja kirjoitus aloitetaan tiedoston lopusta.
$vikalokifile fopen("/var/www/vikaloki/vikaloki.txt""a");
//kirjoitetaan tiedostoon tietorivi; \n tarkoittaa rivinvaihtoa
fwrite($vikalokifile"Aika: ".date("d.m.Y H:i:s")." - Vian kesto:  $vuorokausina vrk $tunteina h $minuutteina min $sekunteina s.\n Palvelin k&auml;ynnistetty uudelleen.\n\n");
//suljetaan tiedosto
fclose($vikalokifile);
}
}}
?>

kirjaa-loki.sh
Koodia: [Valitse]
digitemp -a -q -c /etc/digitemp-pvm-lokiin.conf -o"%d.%m.%Y klo: %H:%M   %.1C  "
digitemp -a -q -c /etc/digitemp-kk-lokiin.conf  -o"%d.%m.%Y klo: %H:%M   %.1C  "

Lokitiedoston muotoileva PHP-sivu (kopioidaan lokisiirtojen yhteydessä kohdehakemistoihin):

index.php
Koodia: [Valitse]
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">
<TITLE>Tilatankin L&#228;mp&#246;tila</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER><TT>
<B><FONT style="color: #000000;background: #BFBFFF;">0,5 &#176;C ja alle</FONT></NOBRT></B>
<B><FONT style="color: #000000;background: #BFFFBF;">0,5 ... 1,9 &#176;C</FONT></NOBRT></B>
<B><FONT style="color: #000000;background: #FFFFBF;">2,0 ... 3,4 &#176;C</FONT></NOBRT></B>
<B><FONT style="color: #000000;background: #FFBFBF;">3,5 &#176;C ja yli</FONT></NOBRT></B>
</CENTER></TT>
<BR>
<CENTER>
<H5>Tilatankin L&#228;mp&#246;tilat:<BR>
<BR>
Matti Meikäläinen<BR></H5>
</CENTER>

<?php
//käsiteltävä tiedosto
$tiedosto "data.txt";
//jatketaan, jos tiedosto on olemassa
if (file_exists($tiedosto)) { 
//luetaan tiedoston muokkausaika muuttujaan 
$kirjoitusaika filemtime($tiedosto); 
//avataan tiedosto lukutilassa
$tekstirivi fopen($tiedosto"r");
//nollataan rivinumerolaskuri
$i 0;

echo 
"<TT><CENTER>\n";

//luetaan rivejä, kunnes tiedosto loppuu
while (!feof($tekstirivi)) {
   
//luetaan rivin teksti muuttujaan $rivi
   
$rivi fgets($tekstirivi100);

// luetaan rivistä tiedot lämpötilasta ja ajasta omiin muuttujiin
$lampotila substr("$rivi"244); // Antaa rivin alusta lukien merkit 24, 25, 26 ja 27.
$aika substr("$rivi"021); // Antaa riviltä merkit rivin alusta aina 21:een.

//rivin tulostus alkaa
// tarkistan lämpötilan olemassaolon eka
if ($lampotila) { // vasta nyt tulostan


if ($lampotila >= 3.5) { // punaisella
echo "<NOBRT><BR>$aika - <B>",'<FONT style="color: #000000;background: #FFBFBF;">',"$lampotila &#38;#176;C</FONT></NOBRT></B>\n";
// punainen loppuu

if (($lampotila >= 2.0) and ($lampotila 3.5)) { // keltaisella
echo "<NOBRT><BR>$aika - <B>",'<FONT style="color: #000000;background: #FFFFBF;">',"$lampotila &#38;#176;C</FONT></NOBRT></B>\n";
// keltaisen loppu

if (($lampotila >= 0.5) and ($lampotila 2.0)) { // vihrealla
echo "<NOBRT><BR>$aika - <B>",'<FONT style="color: #000000;background: #BFFFBF;">',"$lampotila &#38;#176;C</FONT></NOBRT></B>\n";
// vihrean loppu

if ($lampotila 0.5) { // sininen
echo "<NOBRT><BR>$aika - <B>",'<FONT style="color: #000000;background: #BFBFFF;">',"$lampotila &#38;#176;C</FONT></NOBRT></B>\n";
// sininen

// lämpötilan olemassaolon tarkistuksen päättyminen


   //kasvatetaan laskuria
   
$i++;  
}


   echo 
"</TT></CENTER>\n\n";
   
//tulostetaan viimeinen tallennushetki
//   echo "<CENTER><H6>Tuorein lokimuutos: " . date("d.m.Y H:i:s", $kirjoitusaika). ".<BR></H6></CENTER>"; 
//   echo "<CENTER><TT>muotoilu p&#38;#228;ivitetty ".date("d.m.Y H:i:s", (filemtime("index.php")))."</TT></CENTER>";

//   ei tiedä toimiiko edellinen kun tätä sivua kopioidaan lokiin.

//suljetaan tiedosto
fclose($tekstirivi);

} else {
   echo 
"<TT><CENTER>Tiedostoa data.txt ei ole olemassa t&#38;#228;ss&#38;#228; hakemistossa.</CENTER></TT>";
   echo 
"<TT><CENTER>T&#38;#228;h&#38;#228;n hakemistoon ei ole tallennettu l&#38;#228;mp&#38;#246;tilatietoja.</CENTER></TT>";

?>


<CENTER><H5><TT>
<a href="data.txt" title="T&#228;st&#228; linkist&#228; muotoilematon raakaloki" onmouseover="self.status='T&#228;st&#228; linkist&#228; muotoilematon raakaloki'; return true">data.txt</a>
</TT></H5></CENTER><BR>

</BODY>
</HTML>

lokilähde, jota muotoillaan:

data.txt
Koodia: [Valitse]
03.04.2009 klo: 17:00   -1.2
03.04.2009 klo: 18:00   0.0 
03.04.2009 klo: 19:00   0.1 
03.04.2009 klo: 00:00   0.7 
03.04.2009 klo: 01:00   0.8 
03.04.2009 klo: 02:00   1.2 
03.04.2009 klo: 12:00   2.0 
03.04.2009 klo: 13:00   3.4 
03.04.2009 klo: 14:00   4.8 
03.04.2009 klo: 15:00   1.0 
03.04.2009 klo: 16:00   6.2 
03.04.2009 klo: 00:00   0.7 

6
Areenan osoite näyttäs olevan muotoa http://areena-beta.yle.fi/

eli ei pisteellä vaan viivalla.

google haku:

http://www.google.fi/search?hl=fi&q=yle+areena+beta&btnG=Hae&meta=lr%3Dlang_fi

7
Kaikki muu kyllä toimii kuten pitää. wvdial saa yhteyden, skype ja pidgin sekä muut sivustot ja evolution toimii normaalisti.

eikä http://www.livechat.fi/ jaksa kiinnostaa...

8
Ubuntu tietokoneissa / suomi24 chat ei toimi lainkaan.
« : 05.04.09 - klo:00.08 »
Koko tällä foorumilla ei löydy mitään tuloksia tästä ainakaan palvelinnimien avulla eikä haulla "suomi24 chat"

Meillä on ollu kauan ongelmana, ettei suomi24 chat toimi lainkaan.
Syytä en tiedä, vaikka välipalvelimen olen poistanu käytöstä kokonaan, tai kuten heidän ohjeissa mainitaan,

http://chat.suomi24.fi/ohje/#proxy

on seuraaville palvelimille oltava suora yhteys ilman välipalvelinta:

http://chatserver.suomi24.fi:8080
http://chatserver2.suomi24.fi:8080

Kuinka tämän voisi korjata?

Käytän elisan 3G-tikkua, jolle usb laitteiden listaus tulostaa tiedoksi:

Koodia: [Valitse]
Bus 001 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
Komento:

Koodia: [Valitse]
iptables -L
tulostaa seuraavaa:

Koodia: [Valitse]
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

ongelma on ollu aina nettitikun kanssa.

9
Toimiiko kyseinen kortti ubuntussa?

Kortti osoitteessa:

http://www.netikka.net/novalane/index.php?productID=23

Verkkokauppa: http://www.netikka.net/novalane

10

Muistin juuri ongelman lokaalien kanssa tuota tietokantaa luodessa merkistöllä: LATIN1 joten tein tuon oletuksella webminissä.

Koodia: [Valitse]
root@kotiserveri:/var/log/postgresql# su - postgres
postgres@kotiserveri:~$ createdb goah_db -E LATIN1
createdb: database creation failed: ERROR:  encoding LATIN1 does not match server's locale fi_FI.UTF-8
DETAIL:  The server's LC_CTYPE setting requires encoding UTF8.


Ilmeisesti muillakin on kokemusta samasta.

11

Minulla täsmälleen sama ongelma.



apache2 error.log :ssa lukee seuraava:

Koodia: [Valitse]
[Mon Jul 14 10:28:34 2008] [error] [client 192.168.0.1] DBI connect('dbname=laskutus','laskutus',...) failed: FATAL:  Ident authentication failed for user "laskutus", referer: http://192.168.0.2/goah_www/
[Mon Jul 14 10:28:34 2008] [error] [client 192.168.0.1]  at ./aliohjelmat.pl line 38, referer: http://192.168.0.2/goah_www/
[Mon Jul 14 10:28:34 2008] [error] [client 192.168.0.1] 1 at ./aliohjelmat.pl line 38., referer: http://192.168.0.2/goah_www/
[Mon Jul 14 10:28:34 2008] [error] [client 192.168.0.1] Premature end of script headers: login.pl, referer: http://192.168.0.2/goah_www/

samalla /var/log/postgresql/postgresql-8.3-main.log :ssa lukee:

Koodia: [Valitse]
2008-07-14 10:28:09 EEST LOG:  database system is ready to accept connections
2008-07-14 10:28:09 EEST LOG:  incomplete startup packet
2008-07-14 10:28:34 EEST FATAL:  Ident authentication failed for user "laskutus"

postgresql versio:

Koodia: [Valitse]
root@kotiserveri:/var/log/postgresql# apt-cache policy postgresql-8.3
postgresql-8.3:
  Asennettu: 8.3.3-0ubuntu0.8.04
  Ehdokas: 8.3.3-0ubuntu0.8.04
  Versiotaulukko:
 *** 8.3.3-0ubuntu0.8.04 0
        500 http://archive.ubuntu.com hardy-updates/main Packages
        100 /var/lib/dpkg/status
     8.3.1-1 0
        500 http://archive.ubuntu.com hardy/main Packages

 ???

12
Ubuntu tietokoneissa / Vs: aMSN 0.97 ja snack äänileike
« : 26.03.08 - klo:07.11 »


ilmeisesti pakettia "libsnack2" ei ole asennettu.

eli perinteinen tapa asentaa on:

Koodia: [Valitse]
sudo apt-get install libsnack2
arvelen näin, koska pakettihaku sanalla "snack" löysi vain kolme pakettia, joiden nimessä tämä hakusana esiintyy.

Tietoa paketista:

Paketin kuvaus: Sound functionality extension to the Tcl/Tk language
Ryhmä: kirjastot (universe)
Saatavilla oleva versio: 2.2.10-dfsg1-1


Nämä tiedot siis minulla.

13
joo siis itse kokeilin samaa ja toimii. apuahan saa kätevimmin kuten nyt vaikka tähän asiaan:

Koodia: [Valitse]
sshfs --help
...josta vinkki:

Koodia: [Valitse]
sshfs [user@]host:[dir] mountpoint [options]
eli mulla tuo "--help" on useimmin käyttämäni parametri komennolle kuin komennolle, kun sattuu virheitä.

Mulla äskeinen siis:

Koodia: [Valitse]
sshfs serveri@192.168.0.1:/home/serveri /media/ssh -o fsname=ruttu -o allow_other -o cache=no
Jossa siis:

-käyttäjätunnus: serveri
-liitettävä polku etäpalvelimella: /home/serveri
-hakemisto johon liitän paikalliskoneeseen: /media/ssh
-nimi liitettävälle tiedostojärjestelmälle: ruttu
-oikeuksia: sallittu normaalikäyttäjälle
-välimuisti: pois käytöstä

en tiedä tosin, oliko kaikki täysin oikeaoppista. Tein mm. itse kansion /media/ssh:

Koodia: [Valitse]
sudo mkdir /media/ssh
jonka jälkeen voin liittää hakemistoon, jota ei ennen ollut.

14
Tässä on virheitä vaikka muille jakaa.

asennuslähteen, maatunnus GB?

Koodia: [Valitse]
deb http://gb.archive.ubuntu.com/...
silti muunmuassa toisaalla suomipääte FI?

Koodia: [Valitse]
DocumentRoot /var/spool/apt-mirror/mirror/fi.archive.ubuntu.com
Myös kirjoitusvirheitä turhan paljon ollakseen täsmälleen oikein. copy/paste?

itse jouduin lataamaan kaiken uudestaan:
Koodia: [Valitse]
apt-mirror
Kunnes olin korjannut virheitä. Tuonne:
Koodia: [Valitse]
/var/spool/apt-mirror/mirror/
...ei nimittäin tullu lainkaan fi -alkuista hakemistoa, jos nyt kaikki muukaan on tähän mennessä TÄYSIN oikein.

15
Itselläni Gutsy 7.10
ja tietokantapalvelin rakenteilla.

Oppaassa, osoitteessa:

http://wiki.ubuntu-fi.org/LAMP_Asennus

on ilmeisesti virhe komennossa, jossa asennetaan ensimmäisiä paketteja.

Seuraavaa pakettia ei löydy:

Koodia: [Valitse]
lib-apache2-aut-mysql
Sensijaan toisaalla, eli:
https://help.ubuntu.com/community/ApacheMySQLPHP

 mainittu:
Koodia: [Valitse]
libapache2-mod-auth-mysql
löytyy normaalisti.

Onko kyse virheellisestä tiedosta? ...Korjattava?
Kaikki muu nimittäin toimii normaalisti asennettaessa ja silti edes google ei löydä tuota pakettia kuin VAIN tuolta sivulta.

Mun /etc/apt/sources.list tiedoston sisältö on seuraava:
# --------------------------------------------- ALKU ---------------------------------------------

deb cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted
deb-src http://archive.ubuntu.com/ubuntu/ gutsy main restricted #Added by software-properties
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.


# PAKETTIVARASTOLISTAUS X/K/UBUNTU 7.10 (gutsy)

# Listaus ottaa käyttöön seuraavat pakettivarastot:
# - main
# - restricted
# - universe
# - multiverse
# - backports ......... POISTETTU KÄYTÖSTÄ ITSE...
# - medibuntu

## VIRALLISET PAKETTILÄHTEET
deb http://fi.archive.ubuntu.com/ubuntu/ gutsy main universe restricted multiverse
deb-src http://fi.archive.ubuntu.com/ubuntu/ gutsy main universe restricted multiverse #Added by software-properties

## Päivitykset
deb http://fi.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted universe multiverse
deb-src http://fi.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted universe multiverse #Added by software-properties
deb http://security.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse #Added by software-properties

## Backports - ohjelmien uudempia versioita, joita ei välttämättä ole testattu tarpeeksi
## deb http://fi.archive.ubuntu.com/ubuntu/ gutsy-backports main restricted universe multiverse
## deb-src http://fi.archive.ubuntu.com/ubuntu/ gutsy-backports main restricted universe multiverse

## YHTEISÖN YLLÄPITÄMÄT PAKETTILÄHTEET


## KOLMANNEN OSAPUOLEN EPÄVIRALLISET PAKETTILÄHTEET: MEDIBUNTU
deb http://packages.medibuntu.org/ gutsy free non-free
deb-src http://packages.medibuntu.org/ gutsy free non-free

## CANONICAL: (mm. realplayer)
deb http://archive.canonical.com/ gutsy partner

# MOBlock repository:
deb http://moblock-deb.sourceforge.net/debian gutsy main
deb-src http://moblock-deb.sourceforge.net/debian gutsy main

# Skype repository:
deb http://download.skype.com/linux/repos/debian/ stable non-free

# Swiftfox repository:
deb http://getswiftfox.com/builds/debian unstable non-free

# --------------------------------------------- LOPPU ---------------------------------------------


16
sama ongelma täällä:

unrecognized option '/dev/ttyACM0'

JA ON NOKIAN DKU-5 ALKUPERÄISKAAPELI!

Sivuja: [1]