NEWS
wput - geht nicht mehr
-
@oliverio sagte in wput - geht nicht mehr:
fixer
hatte ich heute morgen schon einmal gemacht.
habe dann mit deinem Befehl gewechselt auf iobroker. klappt
und cd ins Verzeichnis log
und dann per cat die log Datei aufgerufenKlappt alles.
-
habe eben mal gegockelt.
Da kam ein Hinweis auf wput und tls !
Man soll den wput mal mit parameter --disable-tls aufrufen
probiert
Klappt aber auch nicht. TLS wird wohl verlangt. War ein versuch.Aber irgendwas muss sich ja geändert haben.
Jetzt habe ich irgendwo gelesen, dass man auch mal curl probieren kann. Da bin ich gerade dran.
Ziel:
Ich möchte Verzeichnisse kopieren auf NAS; und zwar so wie sie sind.
Falls jemand mal ne Idee für mich hat. -
-
-
@bahnuhr
Und die Datei die du versucht hast mit cat zu lesen ist eine die im log aufgeführt ist?
Und du hast das auch mit dem User iobroker versucht?
Haben diese Dateien eine andere Berechtigung wie das sqlite Verzeichnis?
Hast du auch die Berechtigung für der NAS Seite geprüft? -
@oliverio sagte in wput - geht nicht mehr:
@bahnuhr
Und die Datei die du versucht hast mit cat zu lesen ist eine die im log aufgeführt ist?
Und du hast das auch mit dem User iobroker versucht?
Haben diese Dateien eine andere Berechtigung wie das sqlite Verzeichnis?
Hast du auch die Berechtigung für der NAS Seite geprüft?ja im log
ja mit iobroker
log hat 674; sqlite hat 777
Berechtigung NAS müsste passen, manchmal werden Dateien kopiert.Es kommen aber o.g. Fehler in der Konsole.
-
So, ich habe den ganzen Abend probiert.
Mit wput, curl, sftp, ssh2-sftp-clientAber irgendwie raff ich momentan nicht.
Hat nicht doch jemand mal ein Scriptschnipsel womit man ganze Verzeichnisse (z.B. iobroker-data) auf ftp (synology) sichern kann.
mfg
Dieter -
-
@thomas-braun sagte in wput - geht nicht mehr:
Danke, aber das hilft mir nicht.
Ich möchte die Dateien ich echt gespeichert bekommen.
Und nicht in einer gz wo man nicht richtig dran kommt.Selbst die javascript gz von backitup ist eine katastrophe.
Hier sind alle Scripte hintereinander geschrieben. Warum kann man nicht ein Archiv basteln wo alle Dateien drin sind.
So für mich nicht brauchbar. -
gz ist ein Archiv-Format. Prädestiniert für Backups.
Für Skripte gibt es das Spiegel-Verzeichnis.Warum machst du es dir selber so schwer durch so umständliches herumkurven?
-
hier ist noch der alte Thread von dir .
https://forum.iobroker.net/topic/31405/per-script-eine-datei-kopieren-auf-synology
Kannst damit nicht´s mehr anfangen ... inkl. das es bei dir dann geht !?
-
ja, hab ich immer noch.
Schau ich mir auch nochmal an.Aber irgendwas ging da nicht; entweder Verzeichnisse oder ftp auf NAS.
-
@thomas-braun sagte in wput - geht nicht mehr:
gz ist ein Archiv-Format. Prädestiniert für Backups.
ja, das ist klar.
Aber warum speichert man darin nicht die einzelnen Dateien.@thomas-braun sagte in wput - geht nicht mehr:
Für Skripte gibt es das Spiegel-Verzeichnis.
Ja, das ist das wichtigste Verzeichnis, hab ich auch. Und dies sichere ich 3 x.
@thomas-braun sagte in wput - geht nicht mehr:
Warum machst du es dir selber so schwer durch so umständliches herumkurven?
Ich weiß, gibt nicht unbedingt Sinn. Aber man wächst ja mit seinen Aufgaben.
Und wenn es mal geklappt hat, und jetzt halt nicht mehr, dann würde mich interessieren woran dies nun liegt.
-
@bahnuhr
Total Commander hat ein Plugin zum öffnen von Gz Archive -
@bahnuhr sagte in wput - geht nicht mehr:
Aber warum speichert man darin nicht die einzelnen Dateien.
Wenn das Vorteile beim archivieren/komprimieren böte würde man das tun.
Da man das nicht (direkt) tut wird es wohl einen Grund haben es so zu machen, wie man es halt macht.
tar.gz ist nicht umsonst eine Kombination von zwei Kommandos. -
Innerhalb des Archivs sind schon verschiedene Dateien enthalten.
Wie bei zip siehst du halt von außen nicht was drin ist.
Du wärst überrascht wie alt tar ist und wofür es ursprünglich benutzt wurde. Tar stammt aus den 70ern und wurde zur bandarchivierung eingesetzt (Tape ARchiver) er schreibt einfach die Dateien hintereinander, wahrscheinlich mit einem Header mit Dateiname Berechtigung, etc und einem endekennzeichen.
Für die Komprimierung wird dann gz eingesetzt. Tar schreibt und liest nur sequentiell (also immer von vorn bis hinten, klar wegen Magnetband)
Wie gesagt der total Commander bietet ne Menge plugins für viele Dateiformate, aber auch ein ftp Client.
Damit kannst du in die Datei reinschauen und auch extrahieren
Alles was da drin nicht als separate Datei hast, bietet der Iobroker so auch nicht an. Ich wüsste nicht, das es die Skripte irgendwo auf dem Dateisystem als einzelne Datei gibt. Kann mich aber auch irren. -
@oliverio sagte in wput - geht nicht mehr:
Ich wüsste nicht, das es die Skripte irgendwo auf dem Dateisystem als einzelne Datei gibt. Kann mich aber auch irren.
Nur im Spiegel. In iobroker liegen die soweit ich weiß ja in einem json vor.
-
Im Spiegel liegen die alle zeitgleich als js vor:
-
Weiß ich.
-
So, habs hinbekommen.
wput geht nicht mehr.
Konnte es mit "basic-ftp" lösen.Für alle die es evtl. gebrauchen können:
// Variablen var java = 'javascript.0.System.System.akt_Datum_'; // Variablen const ftp = require("basic-ftp"); const v_host = "192.168.243.5", v_user = "xxx", v_pass = "xxx"; // Schedule schedule('2 19 * * 3,6', function () { Sicherung_Data(); }); //Sicherung_Data(); async function Sicherung_Data() { var Jahr = getState(java + 'Jahr').val; var Monat = getState(java + 'Monat').val; if (Monat < 10) { Monat = "0" + Monat; }; var Tag = getState(java + 'Tag').val; if (Tag < 10) { Tag = "0" + Tag; }; var von = "/opt/iobroker/iobroker-data"; var wohin = "Data/"+ Jahr + "_" + Monat + "_" + Tag; await kopieren(von, wohin); log("Backup : iobroker-data gesichert auf NAS Synology"); sendTo('telegram.0', { user: "Dieter", text: "Backup : iobroker-data\ngesichert auf NAS Synology", parse_mode: 'HTML' }); } async function kopieren(von, wohin) { const client = new ftp.Client(); client.ftp.verbose = true try { await client.access({ host: v_host, user: v_user, password: v_pass, secure: false }) await client.cd("Sicherung/Sicherung ioBroker") await client.ensureDir(wohin) await client.clearWorkingDir() await client.uploadFromDir(von) } catch(err) { console.log(err) } client.close() }
mfg
Dieter