Es kann so einfach sein ![]()
Vielen Dank
Posts by bricewullis
-
-
Hallo,
ich möchte die Backupdateien in einem Verzeichnis zählen und bei einer bestimmten Anzahl eine Aktion auslösen. Aber ich scheitere schon bei der Auswertung der Dateianzahl.
Ich habe nur mal zum Test ein kleines Script, aber es gibt einen Fehler in der Zeile von "if"
#!/bin/sh
dateianzahl= ls /backup/*.backup | wc -l
max=5
if [ $dateianzahl -gt $max ]
then
echo $dateianzahl
else
echo "nicht mehr als 5"
fiVielleicht kann mit jemand helfen. Danke
-
Einen Versuch wars wert. Vielleicht mal eine Alternative zu dd probieren. Z. B. dcfldd
Dcfldd als Alternative zu Dd mit Fortschrittsanzeige und Hashing on-the-flyDas gute alte Dd-Kommando ist ein leistungsfähiges Werkzeug zum Erzeugen von Diskimages oder zum Einspielen von Images auf einem neuen Datenträger. Wer eine…linuxundich.de -
Das gleiche Problem hatte ich auch mal. Während eines Backups mit dd hängt sich der Raspi auf und ist nicht mehr erreichbar. Bei mir hat es am WLAN gelegen. Seit ihn mit einem LAN-Kabel verbunden habe ist alles gut. Manchmal ist es auch im WLAN durchgelaufen. Aber nur sporadisch. Es scheint so, als ob die kleinste Unterbrechung im Wlan reicht um diesen Fehler auszulösen. Vielleicht hilft es ja.
-
Danke, ist mir so sogar noch lieber. Das kann man später vielleicht besser nachvollziehen.
-
framp: Vielen Dank! Du bist der Held! Schöne Weihnachten!

-
Der Aufruf von
Bash
Display More#!/bin/bash #status=$(curl -s http://192.168.8.64/cm?cmnd=power | jq ".Power") status=$(curl -s http://192.168.8.64/cm?cmnd=power ) echo "Tasmota ist ${status}" if ["$status" -eq '{"POWER":"ON"}'] then echo "eingeschaltet" fi if ["$status" -eq '{"POWER":"OFF"}'] then echo "ausgeschaltet" fiergibt:
CodeTasmota ist {"POWER":"OFF"} tasmotatest.sh: 5: [{"POWER":"OFF"}: not found tasmotatest.sh: 9: [{"POWER":"OFF"}: not foundDie Variable stimmt also, aber mit der Auswertung hapert es .
-
Also die Variable wird jetzt eingelesen (z.B. {"POWER":"ON"}). Die Pipe und das jq danach muß ich aber weg lassen, sonst steht immer "null" in der Variablen.Codepi@raspi:~ $ status=$(curl -s http://192.168.8.64/cm?cmnd=power ) pi@raspi:~ $ echo $status {"POWER":"ON"} pi@raspi:~ $Jetzt brauche ich nur noch die Auswertung.
funktioniert z.B. nicht. Auch nicht in der bash.
-
-
Leider nicht. Ergebnis:
-
Der erste Fehler kommt schon in Zeile 2 von meinem Beispiel , wo die Variable definiert wird.
-
Hallo,
ich möchte den Schaltzustand einer Tasmota-Steckdose abfragen. Dazu nutze ich den (funktionierenden) Befehl: curl http://192.168.x.x/cm?cmnd=Power. Da Ergebnis ist entweder {"POWER":"OFF"} oder {"POWER":"OFF"}
Leider funktioniert meine Testscript nicht so wie ich es will.
Bash#!/bin/sh status=curl http://192.168.8.64/cm?cmnd=Power if [ "$status" -eq "{"POWER":"ON"}" ] then echo "Tasmota eingeschaltet" fi if [ "$status" -eq "{"POWER":"OFF"}" ] then echo "Tasmota ausgeschaltet" fiVielleicht kann ja jemand helfen.
Danke
-
Hallo, ich hatte das gleiche Problem. Es lag an der selbst erzeugten conf-Datei. Das hat geholfen. Ich habe noch eine Frage: wo kommt eigentlich die conf-Datei genau hin?
einmal liest man nach "/etc/lirc/lircd.conf.d/", dann wieder nach "/etc/lirc/". Ich habe jetzt so lange rumprobiert, und überall eine Kopie davon. Und ist eigentlich der Dateiname egal bis auf die Endung (.conf)? Wenn man mehrere conf-Dateien hat, kann man auch eine jeweils aktuelle auswählen? Ich weiß, Fragen über Fragen aber vielleicht kann ja trotzdem jemand etwas Licht in den Dschungel bringen.
Danke
-
Ah, vielen vielen Dank. Es könnte alles sooo einfach sein

-
Alle gut! Mein Fehler. Ich habe den falsche API-Aufruf genommen. Vielen Dank an _blackjack_ Die jq Variante funktioniert prima!


-
Wenn ich versuche:
curl -s ' -X GET -H "Content-Type: application/json" -H "X-Api-Key":"4111" http://192.168.x.x/api/connection' | jq --raw-output .job.file.path
passiert garnichts. Es erschein nur wieder die Eingabeaufforderung
-
Hallo, danke erst mal. Jetzt habe ich gedacht , die php-Lösung wäre das einfachste, aber ich bekomme nur einen Synthax-Fehler.
Wenn ich versuche folgendes aufzurufen:
curl -s '-X GET -H "Content-Type: application/json" -H "X-Api-Key":"4111" http://192.168.x.x/api/connection' |
php -r '$v = ""; while($l = fgets(STDIN)) $v .= $l; $v = json_decode($v); echo $v->job->file->name;'bekomme ich folgende Meldung:
curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
PHP Notice: Trying to get property 'job' of non-object in Command line code on line 1
PHP Notice: Trying to get property 'file' of non-object in Command line code on line 1
PHP Notice: Trying to get property 'name' of non-object in Command line code on line 1Wahrscheinlich stimm mein Aufruf schon nicht. Eine URL wird ja übergeben (mit richtiger IP)
Der API-Befehl lautet so:
curl -s -X GET -H "Content-Type: application/json" -H "X-Api-Key":"4111" http://192.168.x.x/api/connection > api.txt
Das Ergebnis steht dann in der api.txt
Jetzt wollte ich noch jq probieren aber das war auch nichts. Ich möchte doch nur, das in der api.txt nur der Dateiname steht

-
Hallo,
ein API-Aufruf von Octoprint ergibt folgendes:
{
"job": {
"averagePrintTime": null,
"estimatedPrintTime": 9364.910044412876,
"filament": {
"tool0": {
"length": 5443.96533203125,
"volume": 13.094271143466216
}
},
"file": {
"date": 1729753992,
"display": "Datei.gcode",
"name": "Datei.gcode",
"origin": "local",
"path": "Datei.gcode",
"size": 6676640
},
"lastPrintTime": null,
"user": "pi"
},
"progress": {
"completion": 28.97861798749071,
"filepos": 1934798,
"printTime": 2907,
"printTimeLeft": 6381,
"printTimeLeftOrigin": "genius"
},
"state": "Printing"
}Ich versuche nun die Ausgabe nur auf den Dateinamen (Datei.gcode) zu beschränken aber alle meine Versuche mit Grep und Cut sind kläglich gescheitert. Es wäre super wenn mir jemand helfen könnte. Besten Dank vorab.
-

Das war die richtige Antwort.!!! Müde hin oder her
. Vielen Dank nochmals für die Mühe

-
Danke für die Antworten. Da aber nur ein paar Mails mit Standardtexten verschickt werden, werde ich einfach umformulieren. Wenn jetzt jemand gesagt hätte, in der xy.conf muß dieser oder jener Eintrag stehen, hätte ich nochmal probiert aber so gehe ich den (für mich) einfachsten Weg.
