RSS

Ett skript för fläkten och temperaturen

08 Aug

Jag är inte mycket till programmerare. Jag har försökt förstå mig på det, men det har gått trögt. Min hjärna är inte riktigt inställd på det tänket. Lite enkla skript i bash har jag gjort. Det kan vara bra om man vill slippa göra en långa inmatningar eller komplicerade operationer varje gång man gör det. Nu har jag gjort ett lite skript för att se hur mycket och hur ofta fläkten snurrar, samt den aktuella temperaturen.

Jag använder mig av kommandot sensors för att ta reda på hur temperaturen är och hur fläkten snurrar. Det är bara det, att man får bara det aktuella läget, den uppdateras inte och går inte heller att logga automatiskt. Så jag behöver kunna plocka ut de delar jag vill ha och göra det jag vill med resultatet. För att kunna plocka ut det jag vill, använder jag kommandona grep och cut. Här gäller det bara att kunna räkna ut vilka kolumner som jag ska klippa ut.

Med hjälp av kommandot tee kan jag se till att jag både kan se resultatet på skärmen och att jag kan få en loggfil. Och eftersom jag vill ha en loggfil, vill jag inte ha radbrytningar hur som helst. Det gick då inte att använda kommandot echo, utan jag formaterar texten med printf.

Eftersom jag använder en loggfil vill jag ha en datering av resultatet. Det får jag med ett anpassat output från kommandot date.

Allt det här lägger jag i en funktion där motorn är en while-loop. Med kommandot sleep får jag loopen att köras var 10:e sekund.

Jag vet inte om det är så elegant eller om det hade kunnat göras enklare, men just nu fungerar det i alla fall. Så här ser det ut.

#!/bin/bash
# Se hur mycket fläckten snurrar eller inte.
# Jag använder cut för att bara få de värden
# av resultatet jag vill se.
# Jag använder printf för att varje kommando
# inte ska hamna på egen rad. Jag vill bestämma
# över radbrytningen.
# Jag använder också tee för att dels skriva 
# till en loggfil, dels se resultatet på skärmen.
# Exempel:
# 20130807-19:34:23 Fläkt: 2931	Temp: +45.0°C

echo "Skriver logg till filen ~/fan.log"
echo "Avbryt med Ctrl+c"

fanspeed() {
  while :
    do
     # Anpassad tidsstämpel och med tabb efter
      printf "`date +%Y%m%d-%X`\t"|tee -a fan.log; 
     # Fläkten
      printf "Fläkt: ";
      speed=`sensors|grep fan|cut -d ":" -f 2`;
      printf $speed|tee -a fan.log;
     # En tabb före nästa fält
      printf "\t"|tee -a fan.log;
     # Temperaturen från en av mätarna
      printf "Temp: "|tee -a fan.log;
      temp=`sensors|grep temp1:|cut -d " " -f 9|tail -n 1`;
      printf $temp|tee -a fan.log;
     # En ny rad före nästa körning av skriptet
      printf "\n"|tee -a fan.log;
     # Vänta 10 sekunder mellan varje körning av skriptet
      sleep 10;
    done
}

fanspeed

Ett litet pyssel blev det innan det fungerade, men nu är jag nöjd att jag fick ihop det. Men nu kan köra skriptet och när jag vill stänga av skriptet trycker jag Ctrl+c.

Jo, fläkten och tempen då? Fläkten verkar leva sitt eget liv och inte alls hänga ihop med hur varm datorn är. Så trots att temperaturen är den samma, kan fläkten stängas av, för att efter en stund gå igång igen. Det hade väl inte gjort så mycket om inte fläkten fört ett sånt oväsen. Jag blir lite trött av surret.

 
Lämna en kommentar

Publicerat av på 08 augusti 2013 i Dator, Terminalen

 

Etiketter: , , , , , , , , , , ,

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

 
%d bloggare gillar detta: