Messwert in .txt ablegen

  • Moin!

    Ich bräuchte ein Skript, dass mir die Ausgabe des Wertes(in meinem Fall die Temperatur) dieses Skripts

    Code
    /opt/vc/bin/vcgencmd measure_temp


    automatisch in einen Textfile(.txt) ablegt.

    Dies soll zu regelmäßigen Uhrzeiten passieren(--> cronjob) und der Name des .txt-Files sollte am Besten DATUM_UHRZEIT.txt sein.

    Irgendjemand eine Idee, wie ich das umsetzen könnte(unter Raspbian)?

    Gruß

  • Hallo Flo,

    wenn Du möchtest, dass in der Datei mehrere Werte gespeichert werden, bzw. der neuete Wert immer an die Datei angehängt werden soll, dann mchst Du so:

    Code
    /opt/vc/bin/vcgencmd measure_temp >> DATUM_UHRZEIT.txt

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.


  • Hallo Flo,
    wenn Du möchtest, dass in der Datei mehrere Werte gespeichert werden, bzw. der neuete Wert immer an die Datei angehängt werden soll, dann mchst Du so:

    Code
    /opt/vc/bin/vcgencmd measure_temp >> DATUM_UHRZEIT.txt


    Beste Grüße
    Andreas

    wenn man dann noch das script so abändern könnte wie hier:
    http://forum.nas-forum.org/index.php?page…D=1648#post1648

    das die Datei nicht über alle Grenzen wächst, vielleicht nur 24 Stunden oder 7 Tage (x24 Stunden)

    wäre das auch nicht doof ;)

    ich gestehe ich kann das nicht :blush:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • Hallo,

    Code
    /opt/vc/bin/vcgencmd measure_temp > DATUM_UHRZEIT.txt


    Den Cronjob musst du dir selber anlegen ^^


    Danke! :)


    Hallo Flo,

    wenn Du möchtest, dass in der Datei mehrere Werte gespeichert werden, bzw. der neuete Wert immer an die Datei angehängt werden soll, dann mchst Du so:

    Code
    /opt/vc/bin/vcgencmd measure_temp >> DATUM_UHRZEIT.txt

    Beste Grüße

    Andreas


    Für jede Datei soll ein neues Dokument angelegt werden.
    Trotzdem danke! :)

    wenn man dann noch das script so abändern könnte wie hier:
    http://forum.nas-forum.org/index.php?page…D=1648#post1648

    das die Datei nicht über alle Grenzen wächst, vielleicht nur 24 Stunden oder 7 Tage (x24 Stunden)

    wäre das auch nicht doof ;)

    ich gestehe ich kann das nicht :blush:


    Das übersteigt auch meine Programmierkenntnisse :D

    Allerdings hatte ich es wohl etwas missverständlich ausgedrückt. Die Datei soll nicht "Datum_Uhrzeit.txt" heißen sondern das Skript/Programm soll eben das entsprechende Datum bzw. eben die Uhrzeit selbstständig eintragen, zu der das Programm ausgeführt wird :)
    Hat hierfür jemand einen Lösungsvorschlag?

    Gruß

    EDIT:
    Könnte das funktionieren?

    Code
    00 * * * * /opt/vc/bin/vcgencmd measure_temp > Temp-$(date +%Y-%m-%d)-$(date +%k:%m).txt

    Jetzte müsste er doch (theoretisch zu jeder vollen Stunde measure_temp ausführen und das Ergebnis in (zB) Temp-2014-03-30-19:00.txt abspeichern, oder?

    Und wenn das klappt wo genau wird diese .txt gespeichert?

    Gruß

    Einmal editiert, zuletzt von flo1106 (30. März 2014 um 22:22)

  • whatever > Temp-$(date +%Y-%m-%d)-$(date +%k:%m).txt

    Muesste gehen. Auf einem normalen Debian laeuft es und ich bin
    jetzt zu faul um den Raspi zu starten.

    Cron-Jobs laufen aber unter speziellen Bedingungen und deshalb muss
    man immer einen absoluten Pfad angeben:

    whatever > /home/raspberrypi/Temp-$(date +%Y-%m-%d)-$(date +%k:%m).txt


  • whatever > Temp-$(date +%Y-%m-%d)-$(date +%k:%m).txt

    Muesste gehen. Auf einem normalen Debian laeuft es und ich bin
    jetzt zu faul um den Raspi zu starten.

    Cron-Jobs laufen aber unter speziellen Bedingungen und deshalb muss
    man immer einen absoluten Pfad angeben:

    whatever > /home/raspberrypi/Temp-$(date +%Y-%m-%d)-$(date +%k:%m).txt

    Danke ! :)
    Werde es gleich mal testen ;)

    Gruß

  • Hmm, irgendwas funktioniert nicht :D

    Hier meine Crontab Datei:
    7Urmz.png

    Und hier der Ordner in den die Werte eigentlich gespeichert werden sollten:
    7Urpg.png
    Komplett leer.

    Irgendetwas falsch?

    Gruß Flo

  • Und was genau funktioniert nicht?!?

    Dein Crontabeintrag sieht vor den vcgencmd Befehl nur um 10 nach jeder Stunde auszuführen... Desweiteren kommt es darauf an in welcher crontab das steht, root oder pi usw denn für den vcgencmd Befehl benötigt man entsprechende Rechte
    Prüf halt mal /var/log/syslog ob CRON zu dem Zeitpunkt eine Fehlermeldung schreibt

    Und btw der 1. Crontabeintrag überschreibt den Inhalt des Logfiles jedesmal - is das Absicht?

  • Es wird im Ordner gar keine Datei geschrieben, der Ordner ist komplett leer, wo eigentlich die Log Ergebnisse aus dem Cron stehen sollten.

    Der Befehl soll auch nur immer um 10 nach einer Stunde ausgeführt werden. Dann müsste der eine ja theoretisch eine neue Datei mit den Logergebnissen erstellen und der andere die Logergebnis in die "templogs.txt" mit reinschreiben.

    Das sagt mir /var/log/syslog um 10 nach:

    Code
    Apr  3 12:10:01 raspberrypi /USR/SBIN/CRON[988]: (pi) CMD (/opt/vc/bin/vcgencmd measure_temp >>  /home/pi/templogs/Templogs.txt)
    Apr  3 12:10:01 raspberrypi /USR/SBIN/CRON[989]: (pi) CMD (/opt/vc/bin/vcgencmd measure_temp >  /home/pi/templogs/Temp-$(date +)

    Steht übrigens in der Crondatei des Users "pi".

    Nein das ist keine Absicht... sollte der Befehl nicht einfach den neuen Messwert ans Ende der Datei dazuschreiben?

    Gruß Flo

  • Wenn man ein mal > nutzt und anschließend nochmal wird der vorher gemacht Eintrag überschrieben.. Also:

    Code
    echo 1 > /tmp/test
    echo 2 > /tmp/test

    Dann stünde nur 2 in der Datei /tmp/test

    Leg dir mal für dein Vorhaben eine Scriptdabei an welche dann nur von Crontab ausgeführt wird, also zum Beispiel so:
    /home/pi/temps.sh

    Bash
    #!/bin/bash
    /opt/vc/bin/vcgencmd measure_temp > /home/pi/templogs/Temp-$(date +%Y-%m-%d)_$(date +%k:%m).txt
    /opt/vc/bin/vcgencmd measure_temp >> /home/pi/templogs/Templogs.txt

    Und der Crontab Eintrag sähe dann so aus:

    Code
    10 * * * *  bash /home/pi/temps.sh

    Eleganter wäre es aber die Rückgabe von "/opt/vc/bin/vcgencmd measure_temp" in eine Variable zu schreiben und die dann 2x zu echo'n, weil das weniger Last erzeugen würde nämlich nur 1x ;)


  • Wenn man ein mal > nutzt und anschließend nochmal wird der vorher gemacht Eintrag überschrieben.. Also:

    Code
    echo 1 > /tmp/test
    echo 2 > /tmp/test

    Dann stünde nur 2 in der Datei /tmp/test


    Aber bei mir dürfte er ja nichts überschreiben, da die Datei durch die Datums- und Uhrzeitsabfrage einen anderen Dateinamen haben müsste.


    Leg dir mal für dein Vorhaben eine Scriptdabei an welche dann nur von Crontab ausgeführt wird, also zum Beispiel so:
    /home/pi/temps.sh

    Bash
    #!/bin/bash
    /opt/vc/bin/vcgencmd measure_temp > /home/pi/templogs/Temp-$(date +%Y-%m-%d)_$(date +%k:%m).txt
    /opt/vc/bin/vcgencmd measure_temp >> /home/pi/templogs/Templogs.txt

    Und der Crontab Eintrag sähe dann so aus:

    Code
    10 * * * *  bash /home/pi/temps.sh

    Eleganter wäre es aber die Rückgabe von "/opt/vc/bin/vcgencmd measure_temp" in eine Variable zu schreiben und die dann 2x zu echo'n, weil das weniger Last erzeugen würde nämlich nur 1x ;)


    Werde mal das mit dem Script probieren, danke! :)

    Gruß

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!