Bilder von SD-KArte auf den VDR kopieren

  • Hallo,


    ich habe ein kleines Script geschrieben. Dieses lässt sich über die commands.conf starten und kopiert oder verschiebt die Bilder der SD-Karte auf die lokale Festplatte oder eine SAMBA-Freigabe. Und zwar immer in einen Ordner mit dem Datum, an dem die Bilder verschoben/kopiert wurden.
    Es kann außerdem eingestellt werden, ob die Bilder verschoben oder kopiert werden sollen.


    Es funktioniert schon recht gut, nur hätte ich gerne, daß das Script die SD-Karte automatisch erkennt. So könnte ich noch eine Variable sparen. Hat da einer von euch ne Idee?


    Außerdem sollte das Script erkennen können ob die Bilder schon in einem älteren Ordner vorhanden sind, wenn das Script nur kopiert, um Doppelbilder zu vermeiden. Da hätte ich auch gerne etwas hilfe von euch.


    Script ist angehängt, wer Verbesserungsvorschläge hat immer her damit. Ist auch bestimmt nicht das Optimum, aber für mein erstes Script ist es denke ich OK.


    MfG
    Daniel


    PS: .txt entfernen ;)

  • wie wärs mit einer schleife. um nicht immer händisch das script zu starten?


    statt zeile 42

    Code
    grep -e $SDKARTE /proc/diskstats &> /dev/null


    füge das hier ein.


    Code
    $ENDLOS=ja   #Als Schleife
    $WARTE=60   #Warte in x Sekunden bis wieder SD-Karte gesucht wird
    while [ "$ENDLOS" = "ja" ] ; do
    sleep $WARTE
    grep -e $SDKARTE /proc/diskstats &> /dev/null
    .....   #den Rest deines Scripts


    und ersetze ab Zeile 125 den Rest deines Scripts.

    Code
    echo 'SD-Karte kann samt Kartenleser entfernt werden'
    svdrpsend.pl "Daten fertig kopiert, SD-Karte innerhalb von $WARTE Sekunden entfernen, sonst wird nocheinmal alles kopiert!!!"
    else
    	echo '/dev/'$SDKARTE 'ist nicht vorhanden, keine Bilder verschoben!'
    fi
    done


    Dann brauchste das Script nicht unbedingt via commands.conf starten.
    Ich würde es via rechnerboot starten (slackware) in rc.local


    was mir noch so einfällt.


    meine sd-karte hat die bilder mit der endung .JPG
    großschreibung! wird in deinem script nicht berücksichtigt.
    dann noch die frage warum samba? wenn linux, dann nfs! egal.
    als letztes noch eines. wenn du verzeichniße nicht mittels date erstellst, sondern ein festes kannste mit der option -u von cp arbeiten siehe man cp! so wird nicht immer alles kopiert!


    reicht erst einmal.


    arch4vdr - archlinux - nvidia quadro P1000 - cine S2 V6

    Einmal editiert, zuletzt von lini ()

  • Das mit der Schleife werd ich morgen mal einbauen, ist ne gute Idee, danke.


    Samba benutze ich, da mein Hauptrechner im Keller steht und dort per Dualboot Windows und Linux drauf ist. Ich habe unter Windows und Linux die gleichen Freigaben eingerichtet, somit kann ich vom VDR immer an die Daten ran, egal ob ich grad am Spielen bin oder sonst etwas mache. Darum per Samba. Außerdem denke ich das viele hier noch Windows auf Ihrem Hauptrechner haben. Aber ich denke es sollte machbar sein, das Script dahin gehend noch zu erweitern, so das sowohl Samba als auch NFS funtzt.


    Gibt es einen einfachen weg wegen der Endung? Wie ich schon sagte ist dies mein erstes etwas aufwändigere Script. Hab dadurch schon einiges gelernt, aber bis ich die BASH vollständig behersche wird rs noch etwas dauern.



    MfG
    Daniel

  • das mit der endung.
    einfach in zeile 122 von


    mv /mnt/sdkarte/dcim/$KAMERA/*.jpg $VERZEICHNIS/NachDatum/$DATE/$KAMERA


    in


    mv /mnt/sdkarte/dcim/$KAMERA/* $VERZEICHNIS/NachDatum/$DATE/$KAMERA


    wird halt alles kopiert. vieleicht sind ja auch ein paar avi files drauf. ;)

  • Zitat

    mv /mnt/sdkarte/dcim/$KAMERA/* $VERZEICHNIS/NachDatum/$DATE/$KAMERA


    So einfach wollte ich mir das eigentlich nicht machen. Die Videos sollen später noch in ein extra Verzeichnis kommen. In die Verzeichnisse der Bilder sollen auch nur die Bilder ;)


    Ich hatte mir überlegt, das es doch auch gehen muß, das Erstellungsdatum der Bilder auszulesen und anhand dessen ein Verzeichnis mit diesem Datum zu erstellen um in einem Ordner nur die jeweiligen Bilder von dem einen Tag zu haben. In dem Fall könnte man auch mit cp -u arbeiten und könnte dubletten vermeiden. Außerdem fände ich das schön übersichtlich. Bei Google hab ich dazu noch nichts finden können. Hat da jemand einen Tip wie das geht?


    MfG
    Daniel


    PS: LinVDR hat nur busybox und dessen cp kennt kein "-u". Konnte mir jetzt behelfen, indem ich die fileutils per debtool geladen habe und nur den cp-befehl ectrahiert habe. Nun funtzt auch "-u" ;)

  • So, hab nochmal ein bischen an dem Script gebastelt.
    Hier kann die neue Version geladen werden.


    Die Bilder der SD-Karte werden erst in einen temporären Ordner kopiert, dann wird der Dateiname per "jhead" umgewandelt in Erstellungsdaum+Zeit und dann in einen beliebigen Ordner kopiert, der auch auf einer Netzwerkfreigabe liegen kann. NFS und Samba sollte unterstützt werden. Evtl. kann das mal jemand testen mit NFS.


    Bei mir funtioniert es bis jetzt gut, könnte aber sein das noch ein paar Schnitzer drin sind, also vorsicht beim testen.

  • 1. mount -t cifs funktioniert nicht wie mount -t nfs !
    so muss es sein: mount -t nfs host:dir
    z.B. mount 192.168.0.1:/usr/src/linux /mnt/nfs
    ich persoenlich wuerde nicht mit deinem script mounten.
    ich mache das bereits mit /etc/fstab
    nimm daher das mounten mittels nfs als extra-option in dein script, zu steuern ueber eine variable.


    2. die funktion sdmount ist nicht gerade optimal.
    was machste denn wenn meine sd-karte sdf1 hat ;)
    zudem kannste nicht alles mounten was gerade so eingesteckt wird.
    steuer es entweder ueber eine variable oder nutze eine andere art.


    3. ebenso die kunktion sdcopy.


    und wo bleibt das exif?
    schau mal unter http://www.exiv2.org/ nimm das consolenutil exiv2.
    teste es an deinem rechner und bau es in dein script ein.
    nur so kann dein script mehr.

  • ich hab das mal grad installiert.
    mit: exifprint dscf1198.jpg
    spuckt das script eine zeile mit datumsangaben aus.
    Exif.Photo.DateTimeDigitized 0x9004 Ascii 20 2007:01:05 18:45:41
    das tool kann auch noch ein bischen mehr auslesen.
    so kann man die kamera,modell und sogar die software der kamera auslesen.


    viel spass beim basteln.

  • Hallo lini,


    erstmal vielen Dank für Deine Tipps.


    Zitat

    mount -t cifs funktioniert nicht wie mount -t nfs


    Hatte ich gesehen, jetzt wo Du es sagts, warum mache ich das nicht auch über die fstab? Werde das nochmal überarbeiten.


    Zitat

    die funktion sdmount ist nicht gerade optimal.


    Ich weiß, mir ist nur nichts besseres eingefallen. Ich hab hier zwei Karten, einmal nen Memory-Stick und einmal ne SD-Karte. Sonst wird an meinem VDR eigentlich nichts per USB angesprochen, daher dachte ich diese Lösung wäre am einfachsten. Werde mir das nochmal genauer anschauen und dann ändern.


    Zitat

    und wo bleibt das exif?


    Ist doch drin ;) jhead, aber auch exiv2 werd ich mir nochmal genauer anschauen. Momentan läuft es bei mir allerdings wie gewünscht und meine Frau braucht nur die Karte in den Kartenleser Stecken und dann den Kartenleser in den VDR, nach der Meldung das die Bilder kopiert sind, zieht sie den Kartenleser wieder raus und kann sich die Bilder am Fernseher anschauen.


    MfG
    Daniel

  • Ich denke was ich bisher gelesen habe liest sich doch ganz gut. Nicht so kritisch lini ;)


    So richtig schön lässt sich das so auch nicht machen. Wenn man es richtig schön wollte müsste man ein dbus plugin oder ähnliches haben. (Gerät anstecken => "Wollen sie die Bilder kopieren ?" ) ;)

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Steffen: Du hast das Problem erkannt, allerdings muß ich lini in den meisten Punkten recht geben, so ganz gefällt mir das auch nicht, was ich da zusammengeschustert habe.


    Hab heute Abend noch ein bischen mit dem automounter herumgespielt, aber der macht auch nicht das was ich mir wünsche. Wolln wir mal hoffen das in LinVDR 0.8 etwas in der Richtung gemacht wird.


    Ich werd wohl erstmal wieder darauf zurückgehen, daß das Script über die commands.conf angestoßen wird. Da muß meine Frau dann halt ein paar Tasten auf der FB drücken um die Bilder zu kopieren. Und gelernt habe ich auch einiges durch dieses Script :)


    MfG
    Daniel

  • Hallo Daniel,


    ich will den alten Beitrag noch mal aufleben lassen, da ich für meine Schwiegereltern eine einfache Lösung suche um Bilder von einem Kartenleser zu verschieben.
    Zur besseren Übersicht erstelle ich mir immer einen Ordner eines Jahres und dann 4 Unterordner für die Quartale.


    Könnte man das Script so abändern?


    Ich benutze Easyvdr wo der Kartenleser automatisch erkannt wird.


    Viele Grüße Welder

  • Hi,


    das script kann man bestimmt so abändern. Leider habe ich kaum noch Zeit zum basteln, bei mir läuft das Script zu Zeit auch nicht. Daher kann ich Dir nicht wirklich weiterhelfen, es sei denn Du hast direkte Fargen zu diesem Script. Probier halt mal ein bischen rum, dies ist auch mein erstes und einziges Script gewesen und alle infos dazu hab ich durch google und dieses Forum gefunden.


    MfG
    Daniel

Jetzt mitmachen!

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