NEWS
"docker cp" oder "docker exec" funktionieren nicht
-
Hallo,
ich habe IoBroker direkt auf meinem Raspy4 installiert, betreibe MotionEye aber als Docker-Container.
MotienEye meldet mir wenn es eine Bewegung erkennt, zeichnet auf und meldet IoBroker wenn die Bewegung beendet ist.
Nun würde ich gerne das aufgezeichnete mp4 mittels Telegram verschicken.Dazu wollte ich nun folgende Befehle ausführen:
Um die jüngste MP4 Datei zu ermitteln:docker exec -it <container-id> sh -c 'ls /var/lib/motioneye/Camera2/*.mp4 -t1 | head -n 1'
Um das besagte MP4 aus dem Container zu laden:
docker cp <container-id>:/var/lib/motioneye/Camera2/2022-06-30_14-05-09.mp4 /home/motion
Beide Kommandos schlagen fehl, egal ob ich "sudo" davor schreibe oder nicht.
Ich habe nun gelesen das der IoBroker-User nicht viel darf, aber wenn ich versuche Ihm "docker" oder "docker cp" oder "docker exec" zu erlauben, mittelsiobroker ALL=(ALL) NOPASSWD: /bin/docker
kommt immer die Fehlermeldung:
-bash: Syntaxfehler beim unerwarteten Wort `('
Kann mir jemand dabei helfen, oder gibt es eine bessere Möglichkeit das ich
- heraus bekomme was das letzte MP4 ist
- das aus dem Container heraus bekomme
- um es dann mittels Telegram zu verschicken
Direkt verschicken, von MotionEye möchte ich eher nicht, weil ich in meiner VIS einen Butten habe womit ich (so zu sagen) eine Überwachung aktiviere / deaktiviere. Und nur wenn das Flag aktiv ist möchte ich eine Nachricht verschicken.
-
@sven-reichert sagte in "docker cp" oder "docker exec" funktionieren nicht:
Beide Kommandos schlagen fehl, egal ob ich "sudo" davor schreibe oder nicht.
wie lautet die fehlermeldung?
@sven-reichert sagte in "docker cp" oder "docker exec" funktionieren nicht:
iobroker ALL=(ALL) NOPASSWD: /bin/docker
-bash: Syntaxfehler beim unerwarteten Wort `('die anweisung ist nix zum ausführen, sondern muss in die datei /etc/sudoers eingetragen werden, bzw. besser in eine eigene datei unterhalb von /etc/sudoers.d/ dort liegt auch schon die datei von iobroker, die bestimmten befehlen die sudo rechte einräumt.
detailbeschreibung hier
https://wiki.ubuntuusers.de/sudo/Konfiguration/
zu beachten ist, diese datei oder das verzeichnis ist nicht als volume definiert. d.h. nach Neustart des containers sind die Änderungen wieder weg. daher solltest du die datei als eigenes volume definieren und irgendwo in einem hostverzeichnis ablegen.Ablageort der Dateien
/var/lib/motioneye/Camera2/*.mp4
auch hier würde ich für den container ein eigenes volume definieren und diesen in ein verzeichnis auf dem host system legen.
dann kannst du mit normalen befehlen auf die datei referenzieren (du musst das gleiche verzeichnis als volume nur auch im iobroker container einblenden.)