wget im Shellscript schreibt Dateien

brenner

Commander
Registriert
Apr. 2002
Beiträge
3.037
Wenn ich mein Script (systa_to_ccu.sh) ausführe, welches ca. 30 dieser Aufrufe enthält:

Code:
#HZ_TSA (Temperatur Solar Austritt)
wget -q "http://192.168.0.11/addons/db/state.cgi?item=HZ_TSA&dp=STATE&value=`/usr/local/bin/siloader -s | head -n 26 | tail -n 1 |  cut -d " " -f 8`" >/dev/null

Wird mir im Dateisystem zu jedem Aufruf eine Datei abgelegt die so heißt
Code:
state.cgi?item=HZ_TSA&dp=STATE&value=13.0

Per Cron wird das Script alle 5 Minuten ausgeführt
Code:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/5 * * * * 	root   /fhemtocacti/systa_to_ccu.sh >/dev/null
#




Da das Script alle 5Minuten aufgerufen wird, müllt es natürlich das Dateisystem zu :(
Was kann ich dagegen tun?
 
Zuletzt bearbeitet:
Super,

jetzt wird nur noch eine einzelne Datei angelegt mit Namen
Code:
1

Und mit komischen Daten gefüllt, aber die kommen, glaub ich, vom Programmaufruf des "siloader".
Ich weiß aber nicht warum die Datei überhaupt geschrieben wird...


Dateiinhalt sieht so aus
Code:
Dec 13 18:45:01 S: [05] 24 44 41 54 0D 
Dec 13 18:45:01 R: [77] 7E 4A 01 2C 12 0D 0C DD 07 22 00 F6 00 00 00 41 
                        02 9D 01 8D 01 8C 01 89 01 D8 FE DD FE 00 00 00 
                        28 00 F9 16 00 00 3F 0D 00 00 00 08 02 CB 01 DC 
                        00 CB 01 00 00 00 00 45 00 C6 00 47 01 00 00 00 
                        00 00 00 00 01 00 00 00 00 FF FF FF D9 
Dec 13 18:45:01 S: [05] 24 44 41 54 0D 
Dec 13 18:45:01 R: [77] 7E 4A 01 2C 12 0D 0C DD 07 22 00 F6 00 00 00 41 
                        02 9D 01 8D 01 8C 01 89 01 D8 FE DD FE 00 00 00 
                        28 00 F9 16 00 00 3F 0D 00 00 00 08 02 CB 01 DC 
                        00 CB 01 00 00 00 00 45 00 C6 00 47 01 00 00 00 
                        00 00 00 00 01 00 00 00 00 FF FF FF D9
usw...
 
wget ist, zumindest soweit ich dein Vorhaben verstehe, einfach das falsche Tool. wget ist in erster Linie zum Downloaden da. curl wäre die bessere Wahl.

Wenn du mir eine Beispiel-Response postest und sagst was davon du nur haben willst, kann ich dir da helfen. Ansonsten solltest du dir mal curl mit --silent als Parameter ansehen und daran deine bearbeitenden Tools anschließen (vermutlich würde ein gutes grep reichen).
 
Moin moin,

ich benutze es so wie vom Programmierer des "hmcompanion" angedacht.

Mittels wget Aufruf kann ich die gegrepten Werte in die Systemvariablen meiner Haussteurung (Homematic) schreiben und von dort aus weiter nutzen und visualisieren.


Hab inzwischen gemerkt das "wget -q0-" zwar dafür sorgt das keine Files geschrieben werden, aber auch nichts mehr in die Homematic gelangt.

Temporär helfe ich mir jetzt leider erstmal mit
rm ./root/state.cgi*
rm ./root/1
am Ende :-(


Um welchen Faktor die SD-Karte im Raspi da durch altert wird man sehen...
 
So als Tipp noch: mach doch in deinem Skript als erstes ein
Code:
cd /tmp
Das sollte als ramdisk gemountet sein und falls nicht, folgendes in der /etc/fstab ist dein freund:
Code:
tmpfs /tmp tmpfs size=64M 0 0
Falls "siloader" außer den gewünschten noch weitere Ausgaben macht, füge vor der Pipe ein
Code:
2>/dev/null
ein. Das hilft allerdings nichts, wenn das Programm die Datei selbst anlegt, wonach es mir eher aussieht.
 
Zurück
Oben