NEWS
backitup von javascript
-
@dehein2
Ich weiß ehrlich gesagt nicht wo die skripte im 'Rohzustand' in welchem JSON liegen. Vermutlich in /opt/iobroker/iobroker-data -
@thomas-braun sagte in backitup von javascript:
Kann eigentlich nicht sein.
Dann probiere es mal aus. Erstelle irgendein Testskript, speichere es ab und lösche es dann im Backup-Ordner. Es wird auch aus ioBroker verschwinden. Habe ich damals genauso getestet. Und wenn man ein Skript in den Backupordner erstellt, ist es auch im ioBroker vorhanden.
-
@dehein2 sagte in backitup von javascript:
Ich habe ein Backup als zip mit Ordnern und darin die jsons -> kann ich diese einfach in den Ordner /home/iobroker/scripts legen und diese werden dann in den adapter zurückkopiert?
Die Skripte befinden sich standardmäßig in der Datei
objects.json
im Pfad/opt/iobroker/iobroker-data/
Wenn du die einzelnen Skripte (*.js) aus dem alten Backup-Ordner gesichert hast, kopiere sie einfach in den neuen Backup-Ordner und sie sind wieder da.
-
@dr-bakterius Hab jetzt mal in einem skript aus dem Spiegel eine Ansage über Alexa geändert. Im ioBroker ist aber nach neustart vom javascript-Adapter die alte Fassung drin. Hätte sich ja eigentlich ändern müssen.
-
@thomas-braun Ich habe mal ein Testskript erstellt, dass hat lediglich einen Kommentar. Dieses habe ich geändert. Danach war das Skript im Broker gestoppt, doch der Kommentar wurde nicht geändert. Also gleich wie bei dir. Dann habe ich das Skript aus dem Ordner gelöscht und im selben Augenblick verschwand es auch aus dem ioBroker.
-
@dr-bakterius
Hast Recht. Hatte ich noch nie ausprobiert.Eigentlich widerspricht das aber auch einem Mirror. Denn wenn das Spiegelbild 'kaputt' ist gibt es immer noch das Original. Wäre ja hier nicht der Fall.
-
@thomas-braun sagte in backitup von javascript:
Denn wenn das Spiegelbild 'kaputt' ist gibt es immer noch das Original.
sehe ich anders.
ein echter spiegel bewertet nicht sondern macht einfach.egal auf welcher Seite vom Spiegel du es löschst, spiegelt er es auf die andere seite.
-
@homoran Dann viel Spaß wenn du mal auf dem Jahrmarkt in ein Spiegelkabinett gehst. Ich glaube da bist du am Ende dann doch froh den echten Homoran zum nächsten Karussel zu bringen.
-
So, ich habe das backup über die importieren Funktion im javaskript adapter wiederhergestellt - schaut erstmal gut aus
Das eigentliche Problem, dass im Ordner /home/iobroker/scriptbackup nichts auftaucht besteht trotzdem noch
(10774) Cannot write file /home/iobroker/scriptbackup/Button4Water.js: Error: EACCES: permission denied, open '/home/iobroker/scriptbackup/Button4Water.js'
drwxr-xr-x 2 root root 4096 Jun 2 13:35 scriptbackup
ist vermutlich falsch
-
@dehein2 sagte in backitup von javascript:
drwxr-xr-x 2 root root 4096 Jun 2 13:35 scriptbackup
Du sollst auch nix als root oder per sudo in dem /home/iobroker machen.
Korrektur des ganzen jetzt persudo chown iobroker:iobroker /home/iobroker/scriptbackup
Das ist das Hoheitsgebiet des users iobroker, also sollen dem auch die dortigen Dateien und Verzeichnisse gehören. Und dann kann auch dort ein Backup gespiegelt werden.
Der richtige Befehl hätte übrigens so aussehen müssen:
sudo -u iobroker mkdir /home/iobroker/scriptbackup
(Wenn der eingeloggte user weder root noch iobroker ist).
-
@thomas-braun
Danke, die frage ist wann ich root war (über den terminal adapter bin ich "iobroker" und über den ssh login "pi")sudo funktioniert noch nicht wegen des hosts - das muss ich mir mal anschauen
-
sudo: unable to resolve host deheinIOBroker: Name or service not known
mein host heiß also gerade deheinIOBroker - ich habe noch nicht ganz verstanden wie er heißen muss
-
@dehein2
Dann stellt sich die Frage, wie du
/home/iobroker/scriptbackup
mit root:root als owner hinbekommen hast. Das geht nicht als pi und auch nicht als iobroker. -
@thomas-braun das frage ich mich auch
-
@dehein2 said in backitup von javascript:
sudo: unable to resolve host deheinIOBroker: Name or service not known
mein host heiß also gerade deheinIOBroker - ich habe noch nicht ganz verstanden wie er heißen muss
ok, nun klappt sudo. Ich hatte im Router einen anderen Host eingetragen. Ist das eine Sicherheitsfunktion?
-
@dehein2
Der Host kann ja auch so heißen. Aber dann systemweit.
Wie/wo hast du denn den jetzigen host name gesetzt. Die wenigsten Linux Hosts heißen ab Werk deheinIOBroker. Musst du also so gesetzt haben.Am Rande: Man vermeidet Großbuchstaben und sonstige Sonderzeichen in host names. Nur die Kleinbuchstaben a-z, Zahlen 0-9 und der Bindestrich sind da vorgesehen. Alles andere kann in der ein oder anderen Konstellation für Ärger sorgen.
-
@thomas-braun
nun klappt es. Im Ordner tauchen die .js Dateien aufDANKE
-
@dehein2 sagte in backitup von javascript:
Ist das eine Sicherheitsfunktion?
Nein, das ist eine Fehlkonfiguration in deinem Netzwerk.
Die host names müssen im System und im DHCP-Server des Routers übereinstimmen. Woher soll denn sonst das routing korrekt erfolgen?Du klingelst bei hostname-a mit der IP 1.2.3.4 und im DHCP ist für die IP 1.2.3.4 der hostname-b eingetragen. Wo klingelt es?
-
@thomas-braun said in backitup von javascript:
@dehein2 sagte in backitup von javascript:
Ist das eine Sicherheitsfunktion?
Nein, das ist eine Fehlkonfiguration in deinem Netzwerk.
Die host names müssen im System und im DHCP-Server des Routers übereinstimmen. Woher soll denn sonst das routing korrekt erfolgen?Du klingelst bei hostname-a mit der IP 1.2.3.4 und im DHCP ist für die IP 1.2.3.4 der hostname-b eingetragen. Wo klingelt es?
Ja für die Netzwerkfunktionen verstehe ich es schon wenn ich nicht direkt die IP verwende. Aber warum ist es relevant für das sudo?
-
@dehein2
Weil sudo 'netzwerkfähig' ist und u. A. an den hostname gebunden ist.
Wenn in der /etc/resolv.conf jetzt etwas abweichendes (vom DHCP) eingetragen wird als der locale hostname meckert sudo da rum.