NEWS
UNSOLVED Datei von iob (VM Proxmox) kopieren nach Win 10
-
Hallo,
ich taste mich weiter an der Vollendung meiner ersten VM auf proxmox ran.Folgendes geht noch nicht.
Ich möchte ein mp3 streamen per dlna. Hab ich aber nicht hinbekommen.
Deshalb Umweg über win Rechner (hier läuft Universal Media Server).
Also Datei kopieren von ...vis.0... auf freigegebenen Ordner in Win.Folgendes hab ich hinbekommen:
- Freigabe des Ordners in Win
- dann mount per cifs in der VM Konsole mit:
sudo mount -t cifs -o user=Dieter //192.168.243.100/1_Sound /opt/iobroker/iobroker-data/files/vis.0/1_Sound
... 100/1_Sound ist der freigegebene Ordner in Win
... /opt/iobroker/iobroker-data/files/vis.0/1_Sound ist der gemountete Ordner
ursprünglich hatte ich /mnt (da aber das gleiche Problem)
... und dann auch eingebunden in fstab
//192.168.243.100/1_Sound /opt/iobroker/iobroker-data/tmp/1_Sound cifs user=Dieter,password=xxx
//192.168.243.100/1_Sound /opt/iobroker/iobroker-data/tmp/1_Sound cifs
(beides probiert -> user weggelassen bzw. hingeschrieben (obwohl ich nicht genau weiß, welcher user hier gemeint ist).
Wenn ich nun eine Datei in Win auf den Ordner schiebe wird er zeitgleich im gemounteten Ordner angezeigt. -> gut
Lösche ich z.B. per winscp die Datei in dem Ordner auf linux wird die Datei auch in Win gelöscht. -> gutJetzt wollte ich eine Datei kopieren per Script, z.B. so:
var fs = require('fs'); const datei= fs.readFileSync('opt/iobroker/iobroker-data/files/vis.0/mp3/intercom.mp3'); setTimeout(function(){ writeFile('vis.0','/1_Sound/klingler.jpg', datei, function (error) { }); }, 500);
dann bekomme ich Fehler im log:
cannot write files: /opt/iobroker/iobroker-data/files/vis.0/1_Sound/klingler.jpg: EACCES: permission denied, open '/opt/iobroker/iobroker-data/files/vis.0/1_Sound/klingler.jpg'
auch hier hab ich probiert:
fs.writeFileSync("opt/iobroker/iobroker-data/files/vis.0/1_Sound/test.mp3", datei);- das gleiche permission problem.
Lösche ich aber den mount mit umount, dann kommt der persmission fehler nicht.
Frage:
Wie kann man per Script eine Datei in einem gemounteten Ordner hinterlegen.mfg
-
ein versuch:
- in windows einen user anlegen iobroker mit kennwort (irgendein kennwort wählen) und rechte im windows ordner
- in linux nicht mit dieter sondern mit dem iobroker user und kennwort mounten (cifs) - auf diesen mountpoint muss jeder rechte haben, damit iobroker da reinschreiben darf
evtl funktioniert das
-
@liv-in-sky
Danke für deine Antwort.Folgendes gemacht:
in win:
Benutzer iobroker hatte ich sogar schon.
Diesen bei den Eigenschaften im freigegebenen Ordner hinzugefügt.in linux:
sudo mount -t cifs -o user=iobroker //192.168.243.100/1_Sound /opt/iobroker/iobroker-data/files/vis.0/1_Sound
nano /etc/fstab
//192.168.243.100/1_Sound /opt/iobroker/iobroker-data/tmp/1_Sound cifs user=iobroker,password=xxxx
mount -av
mit df geprüft ob mount besteht.Script laufen lassen.
Aber weiterhin o.g. permission fehler. -
evtl in der fstab
/Sync/sync cifs nofail,username=ewww,password=xxxxx,file_mode=0777,dir_mode=0777 0 0
ansonsten gerne morgen weiter - da kan ich dann auch testen bevor ich tipps gebe
-
@bahnuhr @liv-in-sky sagte in Datei von iob (VM Proxmox) kopieren nach Win 10:
/Sync/sync cifs nofail,username=ewww,password=xxxxx,file_mode=0777,dir_mode=0777
file_mode und/oder dir_mode ist die Lösung. Ich hatte auch 'alles' probiert jedoch ohne Erfolg, lesen konnte ich als user iobroker, aber nicht schreiben, trotz entsprechender Berechtigungen in Windows
folgender Befehl auf der Konsole tut es dann endlichsudo mount -t cifs -o user=test,password=test,file_mode=0777,dir_mode=0777 //ip/tst ./tst
- der user muss nicht iobroker sein, ein gültiger Windows user tut es auch, benötigt aber natürlich Schreib-/Leserechte, der user iobroker muss unter WIN nichtmal existieren
-
@fastfoot sagte in Datei von iob (VM Proxmox) kopieren nach Win 10:
folgender Befehl auf der Konsole tut es dann endlich
Welches Script benutzt du um auf ./tst zu schreiben?
Würdest du diese mal zur Verfügung stellen.
Danke. -
habe das getestet - brauche auch keinen iobroker user auf windows - nur die rechte habe ich für jeder auf vollzuzgriff gesetzt
mein test mit:
exec('cp /Daten/Wave.mp4 /myotr', function (error, result, stderr) { console.log(result); });
funktioniert
myotr ist auf windowsmount -t cifs -o user=yyyyy,password=xxxxxx,file_mode=0777,dir_mode=0777 //192.168.178.36/OTR /myotr
-
geht auch mit iobroker verzeichnis
exec('cp /opt/iobroker/iobroker-data/files/vis.0/armin/img/black.mp4 /myotr', function (error, result, stderr) { console.log(result); });
-
-
@bahnuhr sagte in Datei von iob (VM Proxmox) kopieren nach Win 10:
Welches Script benutzt du um auf ./tst zu schreiben?
ich nutze für so etwas kein Skript, sondern beschränke mich auf das Wesentliche. Konkret heisst das in diesem Fall (alles passiert immer zuerst auf der Konsole!):
- Bringt der mount Befehl einen Fehler? --> Nein
- Prüfe Leseberechtigung: ls gemounteter_ordner --> Erfolgt Listing?
- Prüfe Schreibberechtigung: echo irgendein_text > test.txt --> Fehlermeldung?
- Prüfe Datei test.txt auf Inhalt unter Windows
- Da der Konsolenuser nicht iobroker ist, jetzt Wechsel zu iobroker: su iobroker
- Wiederholung der Schritte 2-4
- Modifizierung von Schritt 1 unter Zuhilfenahme von Google, Forum, etc, bis Erfolg
- Erst jetzt Nutzung der Funktionalität wie geplant
Falls 'alles' nichts hilft, lasse ich das Problem meist ein paar Tage ruhen und suche nach Workarounds, hier wäre wohl der Weg über ein Share auf der NAS eine Lösung gewesen, das hattest Du ja bereits erfolgreich gemeistert.
Du fährst scheinbar bei neuen Sachen immer gleich das volle Programm(hier fstab, script, etc). Das birgt das Risiko dass zusätzliche Fehler oder Fallen eingebaut sind, die mit der Grundfunktionalität(hier: mount) nichts zu tun haben. Ausserdem geht ein Test schneller
Ich hoffe das hilft etwas für deine nächsten Probleme
-
Ja, das hast du schön geschrieben.
Das Problem ist aber doch, dass man als "Halbwissender" die Befehle gar nicht kennt.Und deshalb sucht man in google nach Lösungsansätze. Und wenn man dann etwas findet (und dies dann auch versteht) probiert man es aus.
So auch hier.Geplant war eigentlich: dlna auf linux
Voraussetzung: die Dateien werden schnell erkannt.
Versucht hab ich: minidlna
(dieser hat aber die Dateien nicht geschrieben) -> warum auch immer.Und dann halt überlegt wie es bisher lief (per win über universal media server -> dies hatte geklappt).
Also Problem: wie bekomme ich die Dateien nach win.Und so ist das dann entstanden.
Fazit:
Grundsätzlich ist deine Vorgehensweise richtig.
Dazu muss man aber wissen, wie ?!mfg
Dieter -
@bahnuhr sagte in Datei von iob (VM Proxmox) kopieren nach Win 10:
Klasse ihr beide.
Danke, aber der Hinweis kam ja von @liv-in-sky, mein Google Ergebnis hatte die entscheidenden Parameter nicht mal erwähnt
-
@fastfoot sagte in Datei von iob (VM Proxmox) kopieren nach Win 10:
Danke, aber der Hinweis kam ja von @liv-in-sky, mein Google Ergebnis hatte die entscheidenden Parameter nicht mal erwähnt
Na ja, aber du hast wenigstens geantwortet.
Was ja viele andere erst gar nicht machen. -
@bahnuhr sagte in Datei von iob (VM Proxmox) kopieren nach Win 10:
Dazu muss man aber wissen, wie ?!
Nun, ein paar Befehle wirst du im Laufe der Zeit schon lernen (müssen), aber das sind nicht sooo viele. Ich bin ziemlich sicher, dass du den Umstieg mit iobroker nicht bereuen wirst
-
in 4-5 wochen wir wir dich bei linux-fragen kontaktieren
finde es echt cool, das du umgestellt hast - hat bei mir auch eine zeit gedauert, bis ich den schritt gemacht habe
ich finde übrigens den plex server mit dem plex adapter einen sehr guten streaming server - soweit ich weiß, kann der auch dlna - aber jetzt hast du ja proxmox, da kann man schon mit vielen servern spielen - hatte früher auch minidlna für serien und filme - aber seitdem ich plex nutze (auf einem fireHD-stick und der app) macht das mehr spaß
-
falls du es mal brauchen kannst - das ist ein script, welches auf meinem plexserver als service läuft und ein verzeichnis nach neuen dateien scannt und dann einen befehl an plex sendet, die library neu einzulesen ( man könnte auch einen datenpunkt in iobroker setzen um zu reagieren)
#!/bin/bash while true do touch /usr/local/bin/lastwatch sleep 60 find /Daten/Video/SCHNELL -cnewer /usr/local/bin/lastwatch -exec curl 'http://192.168.178.14:32400/library/sections/3/refresh?X-Plex-Token=GVmUxxxxxxxxxxvzpVt2' 2>/dev/null {} \; touch /usr/local/bin/lastwatch2 sleep 60 find /Daten/Video/SAVETV -cnewer /usr/local/bin/lastwatch2 -exec curl 'http://192.168.178.14:32400/library/sections/3/refresh?X-Plex-Token=GVmUxxxxxFvzpVt2' 2>/dev/null {} \; # echo "hallo" done
-
und was mir noch eingefallen ist - für die , welche die console nicht so mögen:
in diesem post und folgend sind 2,3 tools erwähnt
-
@liv-in-sky
Ja, ich nutze winscp