Zapis wyników do pliku txt

User avatar
klimasstudio
Posts: 1273
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

Może ktoś mnie naprowadzi jak mam napisać skrypt który po uruchomieniu zapisuje wartości temperatur do pliku.

Z pierwszego wyniku wywołania komendy sensors chciałbym z lini np. Core 0: +39.0°C (high = +80.0°C, crit = +100.0°C) zapisać do pliku txt samą wartość "39.0". Jak taki skrypt napisać w BASHU ?

Code: Select all

root@Octopus:~# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +41.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:        +39.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:        +41.0°C  (high = +80.0°C, crit = +100.0°C)
Core 2:        +37.0°C  (high = +80.0°C, crit = +100.0°C)
Core 3:        +39.0°C  (high = +80.0°C, crit = +100.0°C)

corsairpsu-hid-3-1
Adapter: HID adapter
v_in:        230.00 V  
v_out +12v:   12.11 V  (crit min =  +8.41 V, crit max = +15.59 V)
v_out +5v:     4.98 V  (crit min =  +3.50 V, crit max =  +6.50 V)
v_out +3.3v:   3.31 V  (crit min =  +2.31 V, crit max =  +4.30 V)
psu fan:        0 RPM
vrm temp:     +45.5°C  (crit = +70.0°C)
case temp:    +39.0°C  (crit = +70.0°C)
power total:  56.00 W  
power +12v:   44.00 W  
power +5v:     9.00 W  
power +3.3v:   4.50 W  
curr +12v:     4.00 A  (crit max = +85.00 A)
curr +5v:      2.00 A  (crit max = +40.00 A)
curr +3.3v:    1.38 A  (crit max = +40.00 A)

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +27.8°C  (crit = +105.0°C)
temp2:        +29.8°C  (crit = +105.0°C)

nvme-pci-0100
Adapter: PCI adapter
Composite:    +38.9°C  (low  = -273.1°C, high = +84.8°C)
                       (crit = +84.8°C)
Sensor 1:     +38.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +33.9°C  (low  = -273.1°C, high = +65261.8°C)

pch_haswell-virtual-0
Adapter: Virtual device
temp1:        +46.0°C  
Mam też drugi odczyt z np. Raspberry i taki wynik polecenia. Tak samo chciałbym zapisać do pliku samą wartość "55.0"

Code: Select all

pi@rpi-web:~ $ vcgencmd measure_temp
temp=55.0'C
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

klimasstudio wrote: Sun Nov 13, 2022 1:36 am Może ktoś mnie naprowadzi jak mam napisać skrypt który po uruchomieniu zapisuje wartości temperatur do pliku.

Mam też drugi odczyt z np. Raspberry i taki wynik polecenia. Tak samo chciałbym zapisać do pliku samą wartość "55.0"

Code: Select all

pi@rpi-web:~ $ vcgencmd measure_temp
temp=55.0'C

Code: Select all

#!/bin/bash
for (( ; ; )) ; do
  cpu_temp=$(vcgencmd measure_temp |cut -c6-9)
  echo $cpu_temp > /path/pi_cpu_temp.txt
  sleep 10
done
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

Code: Select all

sensors | grep "Core 0" | tr -s " " | cut -d " " -f3
Czyli: output z sensors wrzucamy do grepa, który zostawia nam tyle linię tekstu zawierającą "Core 0". Następnie wrzucamy to do "tr -s", który wszystkie powtórzone spacje połączy w jedną, i taki wynik wrzucamy do 'cut-d " " -f3' - czyli dzielimy ouput na pola, gdzie znakiem oddzielającym jest spacja i wybieramy -f3 - czyli 3 pole. W wyniku zostaje nam +39.0°C.

Można jeszcze na końcu dodać:

Code: Select all

sensors | grep "Core 0" | tr -s " " | cut -d " " -f3 | grep -o '[-]*[0-9]*\.[0-9]*'
Wtedy dostaniemy 39.0 bez stopni.

BTW. w przykładzie linuxowym dla SuplaDevice jest użyte odpalenie komendy do pobrania wartości do sensora temperatury:
https://github.com/SUPLA/supla-device/b ... figuration
(poszukaj po słowie "sensors")
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
klimasstudio
Posts: 1273
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

lukfud wrote: Sun Nov 13, 2022 4:07 am #!/bin/bash
for (( ; ; )) ; do
cpu_temp=$(vcgencmd measure_temp |cut -c6-9)
echo $cpu_temp > /path/pi_cpu_temp.txt
sleep 10
done
Super działa to choć ja to sobie cronem rozwiąże żeby co kilka minut sprawdzało stan temperatury.
Dziękuję przerobione pod siebie i działa :)
Last edited by klimasstudio on Mon Nov 14, 2022 8:46 am, edited 1 time in total.
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
User avatar
klimasstudio
Posts: 1273
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

klew wrote: Sun Nov 13, 2022 12:33 pm

Code: Select all

sensors | grep "Core 0" | tr -s " " | cut -d " " -f3
Czyli: output z sensors wrzucamy do grepa, który zostawia nam tyle linię tekstu zawierającą "Core 0". Następnie wrzucamy to do "tr -s", który wszystkie powtórzone spacje połączy w jedną, i taki wynik wrzucamy do 'cut-d " " -f3' - czyli dzielimy ouput na pola, gdzie znakiem oddzielającym jest spacja i wybieramy -f3 - czyli 3 pole. W wyniku zostaje nam +39.0°C.

Można jeszcze na końcu dodać:

Code: Select all

sensors | grep "Core 0" | tr -s " " | cut -d " " -f3 | grep -o '[-]*[0-9]*\.[0-9]*'
Wtedy dostaniemy 39.0 bez stopni.

BTW. w przykładzie linuxowym dla SuplaDevice jest użyte odpalenie komendy do pobrania wartości do sensora temperatury:
https://github.com/SUPLA/supla-device/b ... figuration
(poszukaj po słowie "sensors")
Dziękuję za szczegółowe objaśnienie trochę zagłębiłem się i ogarnąłem jak to działa. U mnie wygląda to tak bo jednak nie będę pojedyńczych core monitorował a ogólnie cały procesor.

Code: Select all

sensors | grep "Package id 0" | tr -s " " | cut -d " " -f4 | grep -o '[-]*[0-9]*\.[0-9]*'
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
User avatar
klimasstudio
Posts: 1273
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

Jeszcze raz dziękować za pomoc z grepowaniem cpu temperatur.

Pokusiłem się dodatkowo o sprawdzanie nowych plików które mi rodzina wysyła na serwer. Jeszcze dodać ikonki i zrobic pushover i będzie świat.

Da się poprzez supla-virtual-device zrobić pushover jakoś łatwo?
Last edited by klimasstudio on Mon Nov 14, 2022 8:35 pm, edited 1 time in total.
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

klimasstudio wrote: Mon Nov 14, 2022 8:21 pm Da się poprzez supla-virtual-device zrobić pushover jakoś łatwo?
Spójrz na to: https://github.com/lukbek/supla-pushover
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
klimasstudio
Posts: 1273
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

lukfud wrote: Mon Nov 14, 2022 8:25 pm
klimasstudio wrote: Mon Nov 14, 2022 8:21 pm Da się poprzez supla-virtual-device zrobić pushover jakoś łatwo?
Spójrz na to: https://github.com/lukbek/supla-pushover
Dzięki chociaż to za dużo klepania... Poleciało przez skrypty od Fracza :)
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d

Return to “Pomoc”