CCU Backup mit CuxD

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
uwe111
Beiträge: 4807
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 240 Mal
Kontaktdaten:

Re: CCU Backup mit CuxD

Beitrag von uwe111 » 23.07.2015, 20:32

Hallo Axel,

exit(1) bedeutet das ein Fehler bei der Ausführung des Befehls aufgetreten ist.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: CCU Backup mit CuxD

Beitrag von derrapf » 07.09.2015, 01:08

Hallo Uwe
Habe heute mal in der CCU2 ein Programm geschrieben dass Dein Backup-Script Aufruft.

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/addons/cuxd/extra/ccu_backup /var/nfs/backup");
Folgendes ist mir dabei aufgefallen:
Die Übergabeparameter (also das Backupverzeichnis) an das Script werden ignoriert. Das Script speichert das Backup immer unter /var/tmp ab.
Ich hab das dann mal untersucht:
Wenn man das Script startet und auf der CCU ein ps -e absetzt, dann sieht man, dass eigentlich

Code: Alles auswählen

sh -c /usr/local/addons/cuxd/extra/ccu_backup /var/nfs/backup

ausgeführt wird.
Setzt man dieses Kommando auf der Commandline ab, dann wird auch hier der Parameter /var/nfs/backup ignoriert.
Es funktioniert erst dann wenn man das Kommando so aufruft

Code: Alles auswählen

sh -c "/usr/local/addons/cuxd/extra/ccu_backup /var/nfs/backup"


Was mich dabei wundert: Wenn das ein grundsätzliches Problem ist (also dass jedes Kommando das ich mit dem Exec-Gerät absetze) keine Parameter mehr übergeben kann, dann müssten doch hier die Leute Sturm laufen, weil Ihre Programme nicht mehr funktionieren!

Aber das ist ja nicht so.
Aufrufe wie

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("wget -q -O /dev/null " # url);
funktionieren immer noch.

Ich versteh's grad nicht...

Gruss Ralf

pruse
Beiträge: 223
Registriert: 03.02.2012, 22:41

Re: CCU Backup mit CuxD

Beitrag von pruse » 18.10.2015, 20:20

Hallo,
möchte das CCU Backup mit CuxD auf den USB Stick der FritzBox speichern.
Habe auf meinem PC eine Desktop Verknüpfung wo der Speicher unter "\\Fritz-nas\fritz.nasog\USB-Stick2-0ME-01\backup" der erreichbar ist.
Dann muss ich mich noch mit dem Benutzer und Passwort anmelden.
Alternativ könnte ich auch auf einem FTP-Server in Netz zugreifen.
Wer kann mir bei dem externen Backup helfen.
Gruß Jens
LXCCU im Standby,Yahm auf Raspberry Pi3, 3xHomeduino, 1xHM-Sen-LI-O, 1xHM-WDS10-TH-O, 1xHM-PBI-4-FM, 4xHM-LC-Bl1-FM, 3xHM-LC-Sw1-FM, 2xHM-WDS40-TH-I,
2x HM-Sen-MDIR-O, 6xHMW-IO-12-Sw14-DR, 1xHM-RC-4-2, 1xHM-LC-Sw4-PCB, 1xHM-ES-PMSw1-Pl, 1xHM-WDS30-OT2-SM,
1xHM-LC-Bl1PBU-FM, 1xHM-WDS30-T-O, 1xHM-TC-IT-WM-W-EU, 1xHM-Sen-MDIR-WM55, 1xHM-LC-Bl1PBU-FM

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: CCU Backup mit CuxD

Beitrag von derrapf » 23.10.2015, 23:34

Hi
Ich denke Du musst dazu den USB Stick der Fritzbox im CUxD mounten. Hier mein Beispiel wie ich mein Synology mounte
MOUNTCMD= mount -t nfs 192.168.1.180:/volume1/Medien/server-extern/CCU2/backup /media/backup -o rw,nolock
UMOUNTCMD=umount /media
Diese beiden Werte werden im CUxD im Setup Bereich eingegeben.

Siehe aber auch meinen letzten Thread. Der Aufruf des Backups ignoriert das übergebene Backuüverzeichnis. Hier ist noch Hilfe von Uwe angesagt.
Gruss Ralf

Benutzeravatar
uwe111
Beiträge: 4807
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 240 Mal
Kontaktdaten:

Re: CCU Backup mit CuxD

Beitrag von uwe111 » 24.10.2015, 20:47

Hallo Ralf,
derrapf hat geschrieben:Hier ist noch Hilfe von Uwe angesagt.
Warum?
/usr/local/addons/cuxd/extra/ccu_backup ist ein einfaches TCL-Script. Das kannst Du gerne auch debuggen. :)
Ich vermute aber, dass das Problem nicht im ccu_backup-Script liegt.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: CCU Backup mit CuxD

Beitrag von derrapf » 25.10.2015, 01:24

Hallo Uwe
uwe111 hat geschrieben:
derrapf hat geschrieben:Hier ist noch Hilfe von Uwe angesagt.
Warum?
Weil Du ev. mehr Ahnung von Unix hast und vor allem darüber wie Dein Exec-Objekt funktoniert.

Wie ich oben schon mal geschrieben habe wird das über den CUXD Aufruf
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/addons/cuxd/extra/ccu_backup /var/nfs/backup");

übergebene Verzeichnis vom Script nicht verwendet. Und ich hab momentan keinen Dunst warum nicht.
Da es bei Dir wohl funktioniert muss Du was anders machen als ich.
Das Verzeichnis wird ja komischerweise auch ignoriert wenn ich das Backup-Script mit dem Verzeichnis als Parameter aufrufe.
Ich hab jetzt zu wenig Unix Erfahrung um zu kapieren warum das nur geht, wenn ich den kompletten Aufruf in Hochkommas setze.
Damit gehts zwar auf der Shell, aber über CUxD kann ich den Aufruf ja nicht in Ausrufezeichen klammern.

Gruss Ralf

Benutzeravatar
uwe111
Beiträge: 4807
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 240 Mal
Kontaktdaten:

Re: CCU Backup mit CuxD

Beitrag von uwe111 » 25.10.2015, 13:20

Hallo Ralf,
derrapf hat geschrieben:Wenn man das Script startet und auf der CCU ein ps -e absetzt, dann sieht man, dass eigentlich

Code: Alles auswählen

sh -c /usr/local/addons/cuxd/extra/ccu_backup /var/nfs/backup
ausgeführt wird.
Setzt man dieses Kommando auf der Commandline ab, dann wird auch hier der Parameter /var/nfs/backup ignoriert.
Es funktioniert erst dann wenn man das Kommando so aufruft

Code: Alles auswählen

sh -c "/usr/local/addons/cuxd/extra/ccu_backup /var/nfs/backup"
Diesen Teil verstehe ich leider nicht. Funktioniert das Backup denn auf die SD-Karte?
Nutzt Du die aktuelle CUxD-Version?
Den EXEC_TIMEOUT-Parameter hast Du sicher entsprechend hochgesetzt, richtig?
Stehen im CUxD-Syslog nach dem Aufruf irgendwelche Meldungen?

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: CCU Backup mit CuxD

Beitrag von derrapf » 26.10.2015, 00:49

Hallo Uwe
uwe111 hat geschrieben: Diesen Teil verstehe ich leider nicht.
Was genau ist Dir unklar?
uwe111 hat geschrieben: Funktioniert das Backup denn auf die SD-Karte?
Nutzt Du die aktuelle CUxD-Version?
Das Backup funktioniert prima. CUxD ist 1.3

Das Problem ist ja nur, dass ich es nicht in /var/tmp haben möche, sondern auf dem NAS, also in einem anderen Verzeichnis.
Ergo muss es so aufgerufen werden:

Code: Alles auswählen

/usr/local/addons/cuxd/extra/ccu_backup /var/nfs/backup
Allerdings erfolgt das Backup trotzdem unter /var/tmp
Erst wenn ich

Code: Alles auswählen

"/usr/local/addons/cuxd/extra/ccu_backup /var/nfs/backup"
auf er Shell eingebe, geht das Backup nach /var/nfs/backup
Das Problem ist aber, dass man die beiden "" dem CUXD-Exec nicht mitgeben kann.
uwe111 hat geschrieben: Den EXEC_TIMEOUT-Parameter hast Du sicher entsprechend hochgesetzt, richtig?
Stehen im CUxD-Syslog nach dem Aufruf irgendwelche Meldungen?
Der steht auf 60min.
Die Logs hab ich noch gar nicht angesehen. Kann ich morgen mal machen.
Gruss Ralf

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: CCU Backup mit CuxD

Beitrag von derrapf » 27.10.2015, 00:44

Hi Uwe
Hab's heute nochmal probert. Diesmal auf meiner neuen CCU2.
Ergbnis: Auf der Kommandline funktioniert nun alles auch ohne Hochkommas. Seltsam.
Aber der Aufruf über den CUxD Exec hat keine Auswirkungen. Es läuft zwar das Backupscript; das kann man per ps -e feststellen; aber es entsteht kein Backup. Weder im Verzeichnis das ich angegeben habe noch unter var/tmp
Welche Logs möchtest Du denn genau haben?
Im CuxD Log sieht man nur den Aufruf (ich habe inzwischen ein neues Output-Verzeichnis):

Code: Alles auswählen

...
Oct 26 23:46:56 homematic-ccu2 daemon.info cuxd[618]: move '/tmp/devlog.txt.0' -> '/var/tmp/devlog.txt.20151026-2346'
Oct 27 00:06:24 homematic-ccu2 daemon.info cuxd[245]: rename '/tmp/devlog.txt' -> '/tmp/devlog.txt.0'
Oct 27 00:06:24 homematic-ccu2 daemon.info cuxd[800]: move '/tmp/devlog.txt.0' -> '/var/tmp/devlog.txt.20151027-0006'
Oct 27 00:26:29 homematic-ccu2 daemon.info cuxd[245]: rename '/tmp/devlog.txt' -> '/tmp/devlog.txt.0'
Oct 27 00:26:29 homematic-ccu2 daemon.info cuxd[1176]: move '/tmp/devlog.txt.0' -> '/var/tmp/devlog.txt.20151027-0026'
Oct 27 00:34:15 homematic-ccu2 daemon.warn cuxd[1357]: CUX2801002:1 timeout(120s) /usr/local/addons/cuxd/extra/ccu_backup /media/backup
Im Full-yslog steht

Code: Alles auswählen

Oct 27 00:35:47 homematic-ccu2 user.err rfd: HSSParameter::GetValue() id=STATE failed getting physical value.
Oct 27 00:35:47 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::CallXmlrpcMethod: execute result isFault; method =getValue Params = {"KEQ0023274:1","STATE"} result= [faultCode:-1,faultString:"Failure"] [../Platform/DOM/iseXmlRpc.cpp (2627)]
Oct 27 00:35:47 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::CallGetValue: CallXmlrpcMethod failed [../Platform/DOM/iseXmlRpc.cpp (1447)]
Oct 27 00:35:47 homematic-ccu2 local0.err ReGaHss: Error: IseHssDP::ReadValue: CallGetValue failed; sVal = 0 [../Platform/DOM/iseDOMdpHSS.cpp (130)]
Oct 27 00:35:48 homematic-ccu2 user.err rfd: RFPhysicalDataInterfaceCommand::GetData SendFrame failed for LEVEL_GET
Oct 27 00:35:48 homematic-ccu2 user.err rfd: HSSParameter::GetValue() id=STATE failed getting physical value.
Oct 27 00:35:48 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::CallXmlrpcMethod: execute result isFault; method =getValue Params = {"KEQ0023274:2","STATE"} result= [faultCode:-1,faultString:"Failure"] [../Platform/DOM/iseXmlRpc.cpp (2627)]
Oct 27 00:35:48 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::CallGetValue: CallXmlrpcMethod failed [../Platform/DOM/iseXmlRpc.cpp (1447)]
Oct 27 00:35:48 homematic-ccu2 local0.err ReGaHss: Error: IseHssDP::ReadValue: CallGetValue failed; sVal = 0 [../Platform/DOM/iseDOMdpHSS.cpp (130)]
Oct 26 23:35:52 homematic-ccu2 auth.info sshd[1598]: Accepted password for root from 192.168.111.69 port 63418 ssh2
Oct 27 00:36:01 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 144 0x90 [1] 0 0x00 [2] 1 0x01 [3] 0 0x00 [4] 5 0x05  [../Platform/DOM/iseESPexec.cpp (11622)]
Oct 27 00:38:01 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 144 0x90 [1] 0 0x00 [2] 1 0x01 [3] 0 0x00 [4] 5 0x05  [../Platform/DOM/iseESPexec.cpp (11622)]
Hilft das?
Gruss Ralf

Benutzeravatar
uwe111
Beiträge: 4807
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 240 Mal
Kontaktdaten:

Re: CCU Backup mit CuxD

Beitrag von uwe111 » 27.10.2015, 11:04

Hallo Ralf,

na da steht's doch:

Code: Alles auswählen

Oct 27 00:34:15 homematic-ccu2 daemon.warn cuxd[1357]: CUX2801002:1 timeout(120s) /usr/local/addons/cuxd/extra/ccu_backup /media/backup
Der EXEC_TIMEOUT-Parameter vom Gerät CUX2801002, Kanal 1 steht auf 2 Minuten (120s). Danach wird das Script vom CUxD mit einem Timeout beendet.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Antworten

Zurück zu „CUxD“