[gelöst] Skript starten aus reccmds.conf

  • Ich habe zwei Skripte in meiner reccmds.conf stehen, das Komplexere funktioniert, das Einfache dagegen nicht. reccmds.conf:


    Code
    In Unterordner verschieben                         : /home/ubu/InUnterordnerVerschieben.sh
    Einfach nur einen doofen Ordner erstellen als test                              : /home/ubu/test.sh


    InUnterordnerVerschieben.sh:


    Bash
    #!/bin/bash
    
    
    serienname=$(echo $1 | cut -d "/" -f5)
    mkdir /srv/vdr/video.00/$serienname/$serienname
    chown vdr:vdr /srv/vdr/video.00/$serienname/$serienname
    chmod 775 /srv/vdr/video.00/$serienname/$serienname
    mv /srv/vdr/video.00/$serienname/201* /srv/vdr/video.00/$serienname/$serienname
    touch /srv/vdr/video.00/.update


    Hiermit verschiebe ich Aufnahmen die im Aufnahme-Hauptdir landen in einen Unterordner. Das funktioniert einwandfrei.


    Das test-Skript dagegen, keine Chance. Wobei dieses doch um einiges einfacher gehalten ist, test.sh:


    Bash
    #!/bin/bash
    
    
    mkdir /srv/vdr/video.00/test


    Ein Ordner wird damit nicht erstellt, keine Ahnung wieso.


    Code
    root@VDR:/home/ubu# ls -l *.sh
    4 -rwxr-xr-x 1 root root 320 Jun 19 21:35 InUnterordnerVerschieben.sh
    4 -rwxr-xr-x 1 root root 112 Nov 22 00:33 test.sh


    Die beiden Skripte liegen am gleichen Ort, Besitzer und Dateirechte sind auch identisch.


    Wieso passiert bei test.sh nichts?

  • Ich vermute, dass der Benutzer, unter dem VDR bei Dir läuft, in /srv/vdr/video.00/ nicht die gleichen Rechte besitzt, die er in /srv/vdr/video.00/$serienname besitzt. Dass /srv/vdr/video.00/$serienname bereits existiert, schließe ich daraus, dass Du beim mkdir nicht die Option -p benutzt.

  • So auch meine Vermutung. Probier mal ein

    Code
    su - vdr -c mkdir /src/vdr/video.00/test


    Dann siehst du ob der User vdr das darf.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Was sagt denn das Syslog?
    Normalerweise entfernt VDR leere Ordner unterhalb vom video-Verzeichnis. Ich weiß aus dem Kopf nicht wann der Prozess läuft - evtl. wird das Verzeichnis vom Skript erstellt und gleich darauf vom VDR wieder gelöscht.


    Du kannst versuchen a) in dem Ordner direkt eine Datei (z.B. ".keep") zu erstellen oder b) ein "ls -l /srv/vdr/video.00/test" an das Skript anzuhängen. Wenn ein Kommando eine Ausgabe erzeugt sollte diese im VDR-OSD zu sehen sein.

    VDR 1: Asus E35M1-I, RAM: 8GB, SSD+HDD, TT S2-6400, Debian Jessie, vdr-2.1.x

  • Zitat

    Ich vermute, dass der Benutzer, nicht die gleichen Rechte besitzt, die er in /srv/vdr/video.00/$serienname besitzt


    Ich denke doch. Diese Ordner hat der VDR ja beim Start einer Aufnahme angelegt, und wenn ich per reccmds oder menuorg.xml einen Befehl ausführe, macht er das IMO aus als User "vdr".


    Zitat

    mkdir nicht die Option -p


    Warum sollte ich -p hier brauchen? In dem test-Skript welches nicht funktioniert gibt es nur die eine Zeile: mkdir /srv/vdr/video.00/test, und diesen Ordner mag er nicht erstellen. /srv/vdr/video.00 existiert bereits.


    Zitat

    su - vdr -c mkdir /src/vdr/video.00/test


    Per SSH kommt eine Passwortabfrage, aus dem OSD raus passiert nichts.


    Wie auch immer, habe test.sh gelöscht, InUnterordnerVerschieben.sh kopiert und dann dort meinen gewünschten Befehl eingetragen. Damit geht die Ordnererstellung nun plötzlich (???). Allen anschein nach hat mit test.sh grundsätzlich was nicht gestimmt, wobei Owner und Rechte ja identisch zu dem funktionierenden Skript waren, siehe Eröffnungsposting. Naja gut...


    acb321: es wäre mir neu, dass der VDR leere Verzeichnisse entfernt. Du meinst vermutlich Ordner die .del hinten dran haben, diese werden IIRC entfernt.


    Ist für mich gelöst.

  • Hi,

    acb321: es wäre mir neu, dass der VDR leere Verzeichnisse entfernt. Du meinst vermutlich Ordner die .del hinten dran haben, diese werden IIRC entfernt.


    Doch ich denke schon daß er leere Ordner entfernt... Ist ja auch sinnvoll, da das Löschen des ".del" Ordners einen leeren übergeordneten Ordner hinterlassen könnte und das evtl. über mehrere Ebenen 8) Probier's einfach mal aus...
    Aber auf der anderen Seite geht das vermutlich nicht so schnell daß ein Ordner gleich nach dem Anlegen wieder verschwinden würde.


    rfu

    :vdr2 Server: vdr 2.6.4 (yavdr) im Ubuntu 22.04 docker, Client: Kodi (LibreELEC)

  • Ja, der VDR löscht tatsächlich leere Ordner und nein, es würde entgegen meiner obigen Vermutung nicht dein beobachtetes Verhalten erklären. Das Löschen von leeren Ordnern erfolgt in Cleanup-Zyklen, die normalerweise nicht nach einem reccmd getriggert werden.
    In deinem Fall wäre das systemlog interessant - aber wenn es für dich erledigt ist auch gut.

    VDR 1: Asus E35M1-I, RAM: 8GB, SSD+HDD, TT S2-6400, Debian Jessie, vdr-2.1.x

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!