Seite 1 von 10 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 100
  1. #1

    Standard Brauche Hilfe für Script zur OTR-Batchdekodierung

    Hallo Zusammen,

    ich bin Nutzer von OnlineTVrecorder. Die verschlüsselten aufgenommenen Sendungen (Fileextension .otrkey) bekomme ich via FTP-Push auf meine DS. Bisher musste ich die verfschlüsselten Files erst auf meinen Rechner übertragen, dort mit dem OTR-Dekoder dekodieren und dann wieder auf die DS zurückschieben. Glücklicherweise läuft der Dekoder aber auch auf meiner Intel-DS.
    Mit diesem Befehl kann ich eine einzelne Sendung dekodieren:
    Code:
    /volume1/downloads/OTR/otrdecoder_static/otrdecoder -q -i /volume1/downloads/OTR/Sendungsname_.avi.otrkey -o /volume1/downloads/OTR -e Benutzername -p Kennwort
    Der Befehl funktioniert sowohl über die Konsole, als auch über eine Scriptdatei.

    Natürlich möchte ich den Befehl nicht immer wieder für jede neue Sendung ändern müssen, sondern es sollen alle *.otrkey-Dateien im Ordner /volume1/downloads/OTR dekodiert werden. Dafür soll wohl dieses Script von HIER (ziemlich in der Mitte) dienen:
    Code:
    #!/bin/sh
    # otrmultidecoder
    # Usage: otrmd files
    stat=1 # DEFAULT EXIT STATUS; RESET TO 0 BEFORE NORMAL EXIT
    email=deine@email-adresse.de
    pass=passwort
    
    for arg
    do
             /pfad/zu/deinem/otrdecoder -i "$arg" -e "$email" -p "$pass"
    done
    stat=0
    Wenn ich das Script aber über die Konsole so aufrufe:
    Code:
    /volume1/downloads/OTR/OTRbatchdecodieren.sh *.otrkey
    kommt die Meldung: Could not open input file.

    Das Script liegt im Ordner mit den zu dekodierenden Dateien.

    Leider habe ich von Scripten keinerlei Ahnung.
    Kann mir jemand helfen?
    Gruß Stephan
    ________________________________________
    DS716+ DSM 6.2 - 2 x 4TB WD red (Btrfs RAID-1)
    DX213 1 x Samsung EVO 860 500 GB SSD (Btrfs Basis)
    APC - Back-UPS ES 550G
    AVM Fritz!BOX 7590
    macOS 10.14

  2. #2
    Moderator Avatar von jahlives
    Registriert seit
    19.08.2008
    Beiträge
    18.275
    Blog-Einträge
    20

    Standard

    *.otrkey als Argument dürfte kaum gehen
    Da würde ich so was in der Art probieren
    Code:
    for i in $(find /volume1/downloads/OTR/ -name "*.otrkey" -type f) ; do
     /pfad/zu/deinem/otrdecoder -i "$i" -e "$email" -p "$pass"
    done
    Was im Leben zählt, ist nicht, dass wir gelebt haben. Sondern, wie wir das Leben von anderen verändert haben (Rolihlahla "Nelson" Mandela 1918-2013)

  3. #3

    Standard

    Da kommt dann lediglich die Befehlsübersicht, die man auch mit /volume1/downloads/OTR/otrdecoder_static/otrdecoder -h erhält:
    Code:
    DS> /volume1/downloads/OTR/OTRbatchdecodieren.sh
    Decoder for otrkey files.
    Usage: /volume1/downloads/OTR/otrdecoder_static/otrdecoder [-h] [-v] [-i FILE|URL -e EMAIL -p PASSWORD] [-S STARTTIME] [-E ENDTIME] [-C CUTLIST] [-o DIRECTORY] [-c DIRECTORY] [-b BUFFERSIZE] [-f] [-q]
      -h            prints this screen
      -v            prints version
      -i FILE       use FILE as input file
      -e EMAIL      use EMAIL to fetch the key directly from otr
      -p PASSWORD   use PASSWORD to fetch the key directly from otr
      -o DIRECTORY  use DIRECTORY as output directory (default: .)
      -b BUFFERSIZE use BUFFERSIZE*blocksize as size for the IO buffer.
                    0 disables IO buffering. (default: 1024)
      -q            don't verify input file before processing.
                    If this is turned off, it is possible to decode partially downloaded
                    otrkeys in the new format
      -f            force overwriting of output file
    
    Additional parameters supported by new format:
      -i URL        use URL to fetch input from
      -S STARTTIME  decode file from STARTTIME on
      -E ENDTIME    decode file until ENDTIME
      -C CUTLIST    decode and cut file corresponding to the information in CUTLIST
      -c DIRECTORY  use DIRECTORY as cache directory for http downloads (default: .)
    Die Dateien mit dem Argument *.otrkey aufzurufen war nicht meine Idee. Das hatte ich wie das Script aus dem OTR-Wiki (LINK) entnommen.
    Gruß Stephan
    ________________________________________
    DS716+ DSM 6.2 - 2 x 4TB WD red (Btrfs RAID-1)
    DX213 1 x Samsung EVO 860 500 GB SSD (Btrfs Basis)
    APC - Back-UPS ES 550G
    AVM Fritz!BOX 7590
    macOS 10.14

  4. #4
    Moderator Avatar von jahlives
    Registriert seit
    19.08.2008
    Beiträge
    18.275
    Blog-Einträge
    20

    Standard

    Du hast aber schon den Rest des Codes belassen? Die Definition der Variabeln habe ich weggelassen, die brauchst du aber natürlich schon: )
    Was im Leben zählt, ist nicht, dass wir gelebt haben. Sondern, wie wir das Leben von anderen verändert haben (Rolihlahla "Nelson" Mandela 1918-2013)

  5. #5

    Standard

    So sieht's komplett aus:

    Code:
    #!/bin/sh
    # otrmultidecoder
    # Usage: otrmd files
    stat=1 # DEFAULT EXIT STATUS; RESET TO 0 BEFORE NORMAL EXIT
    email=meineEmail
    pass=meinpasswort
    
    for i in $(find /volume1/downloads/OTR/ -name "*.otrkey" -type f)
    do
             /volume1/downloads/OTR/otrdecoder_static/otrdecoder -i "$arg" -e "$email" -p "$pass"
    done
    stat=0
    Gruß Stephan
    ________________________________________
    DS716+ DSM 6.2 - 2 x 4TB WD red (Btrfs RAID-1)
    DX213 1 x Samsung EVO 860 500 GB SSD (Btrfs Basis)
    APC - Back-UPS ES 550G
    AVM Fritz!BOX 7590
    macOS 10.14

  6. #6

    Standard

    Klappt!

    Sorry, ich hat "$i" unterschlagen. Mein Fehler.

    Vielen Dank für deine Hilfe
    Gruß Stephan
    ________________________________________
    DS716+ DSM 6.2 - 2 x 4TB WD red (Btrfs RAID-1)
    DX213 1 x Samsung EVO 860 500 GB SSD (Btrfs Basis)
    APC - Back-UPS ES 550G
    AVM Fritz!BOX 7590
    macOS 10.14

  7. #7

    Standard

    Ich hätte da noch eine anschließende Frage:

    Wenn ich jetzt das Script starte und im Hintergrund wird gerade noch eine otrkey-Datei per ftp geladen, so kommt sich das Ganze in die Quere.
    Daher möchte ich noch eine Abfrage für das Dateiänderungsdatum einfügen, frei nach dem Schema:
    Code:
    if (test $dateimodifydatum + 10 Minuten < $aktdatum) ; then
    Es sollen also nur Dateien abgearbeitet werden, deren Änderungsdatum älter als 10 Minuten ist.

    Geht das einfach zu bewerkstelligen?
    Gruß Stephan
    ________________________________________
    DS716+ DSM 6.2 - 2 x 4TB WD red (Btrfs RAID-1)
    DX213 1 x Samsung EVO 860 500 GB SSD (Btrfs Basis)
    APC - Back-UPS ES 550G
    AVM Fritz!BOX 7590
    macOS 10.14

  8. #8
    Moderator Avatar von jahlives
    Registriert seit
    19.08.2008
    Beiträge
    18.275
    Blog-Einträge
    20

    Standard

    das ist eigentlich nicht unbedingt nötig. find gibt eine Liste von Filenamen zurück und zwar zum Zeitpunkt des Aufrufs von find. Also nur einmal. Alles was nachher dazukommt arbeitet das Script nicht ab
    **edit**
    ist schon spät :-)
    Könnte natürlich passieren, dass find einen Filenamen erwischt der gerade am Upload ist. Da hast du recht.
    Wenn der Upload nicht fertig ist wenn dieses File drankommt gibts natürlich Ärger
    **edit**
    Was im Leben zählt, ist nicht, dass wir gelebt haben. Sondern, wie wir das Leben von anderen verändert haben (Rolihlahla "Nelson" Mandela 1918-2013)

  9. #9

    Standard

    Das Problem ist, dass die Datei ja so lange 'wächst', bis die Übertragung fertig ist. Mit find würde sie sicherlich auch gefunden, wenn sie erst wenige MB groß ist …, oder?
    Das Dateiänderungsdatum ändert sich natürlich stetig während der Übertragung. Erst nach dem FTP-Push bleibt es konstant.

    Ich hatte jetzt dieses hier gefunden:
    Code:
    DateTime=$(stat  %y "$i")
    Das gibt dann für jede Datei ungefähr so etwas aus:
    Code:
    stat: can't stat '%y': No such file or directory
      File: "/volume1/downloads/OTRkeys/Dateiname.otrkey"
      Size: 663655024       Blocks: 1296216    IO Block: 4096   regular file
    Device: fd02h/64770d    Inode: 3671372     Links: 1    
    Access: (0666/-rw-rw-rw-)  Uid: ( 1026/ftppublic)   Gid: (  100/   users)
    Access: 2013-03-19 22:23:01.000000000
    Modify: 2013-03-19 22:33:49.000000000
    Change: 2013-03-19 22:33:49.000000000
    Aber wie ich jetzt nur an das Modify komme und noch eine gewisse Sicherheitsdifferens von ca. 10' hinzurechne und das Ganze dann mit der aktuellen Zeit vergleiche …???


    **edit**
    ich sehe, du hast meinen Gedanken schon erkannt :-)
    **edit**
    Gruß Stephan
    ________________________________________
    DS716+ DSM 6.2 - 2 x 4TB WD red (Btrfs RAID-1)
    DX213 1 x Samsung EVO 860 500 GB SSD (Btrfs Basis)
    APC - Back-UPS ES 550G
    AVM Fritz!BOX 7590
    macOS 10.14

  10. #10
    Moderator Avatar von jahlives
    Registriert seit
    19.08.2008
    Beiträge
    18.275
    Blog-Einträge
    20

    Standard

    du musst dann nicht unbedingt ein if machen. find kann auch nach Zeitkriterien suchen
    Code:
    for i in $(find /volume1/downloads/OTR/ -name "*.otrkey" -mmin +10 -type f)
    Was im Leben zählt, ist nicht, dass wir gelebt haben. Sondern, wie wir das Leben von anderen verändert haben (Rolihlahla "Nelson" Mandela 1918-2013)

Seite 1 von 10 123 ... LetzteLetzte

Ähnliche Themen

  1. Mounten, brauche Hilfe
    Von Baloo68 im Forum Installation und Konfiguration allgemein
    Antworten: 3
    Letzter Beitrag: 05.04.2012, 10:49
  2. Brauche Hilfe
    Von Highlaender im Forum Synology Beta Programm
    Antworten: 7
    Letzter Beitrag: 22.10.2011, 13:49
  3. pyLoad brauche Hilfe
    Von racer21 im Forum Download Station / Download Redirector
    Antworten: 0
    Letzter Beitrag: 14.05.2011, 18:24
  4. HILFE Brauche kleinen Schubs....
    Von Craxx im Forum Download Station / Download Redirector
    Antworten: 0
    Letzter Beitrag: 25.04.2008, 15:13

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •