Script erstellen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Script erstellen

      Hallo!
      ich habe versucht, ein Script zu erstellen, um Dateien zu kopieren. Natürlich möchte ich nict, dass Dateien, die schon existieren übergangen und nicht überschrieben werden. Die dazu geeignete Anweisung wäre aus meiner Sicht das Kommando

      cp -avru ..........................

      Leider ist die Option -u nicht auf der Ultimo vorhanden, es kommt eine entsprechende Fehlermeldung.

      Das Kommando rsync ist für diesen Zweck ungeeignet, das musste auch nachträglich installiert werden. Gibt es eine Möglichkeit, dieses auch mit "cp -u" zu machen?
    • Das mit dem -u funktioniert nur nicht beim Busybox-cp
      Das ist in /bin als /bin/cp verlinkt.

      Man kann eine normale Version von cp natürlich installieren.
      Erstelle einfach eine andere Version von cp in /usr/bin

      Dazu musst du nur "cp" aus coreutils für deine Box compilieren und in /usr/bin speichern.

      Ich habe das testweise mal für meine Box kurz gemacht ...
      Die als tar-Arciv angehängte Version von cp funktioniert auf meiner Solo4k.
      Sie sollte also zumindest auf deiner Ultimo4K aus dem Profil auch laufen.
      Dateien
      • cp.tar

        (460,8 kB, 16 mal heruntergeladen, zuletzt: )
    • Vielen Dank! Hat wunderbar geklappt!
      Vielleicht noch eine Frage......
      Existiert beim rsync oder cp eine Option, die laufende Aufnahmen ausschliesst.....ich weiß nicht, ob das eventuell die Aufnahme unter gewissen Umständen stört.
      BeimVTI_Filemanager sieht man einen anderen Mode bei laufenden Aufnahmen, 500 der nach Abschluß auf 644 wechselt.
    • Du wolltest doch eh ein Script erstellen , dann kannst du das Problem mit laufenden Aufnahmen ganz einfach im Script selbst lösen.

      Shell-Script

      1. ZIEL="/home/root/"
      2. for FILE in ls "/hdd/movie/"*".ts"; do
      3. if [ ! -f "${FILE}".rec ]&&[ -f "${FILE}" ]; then
      4. /usr/bin/cp -avru "${FILE}" $ZIEL
      5. fi
      6. done
    • Vielen Dank für die Tipps! Das Automove hatte ich schon ausprobiert und es traf nicht ganz das was ich wollte, als ich nur eine Maschine hatte. Ich denke nochmal nach.....
      Für rsync hatte ich schon ein Script hier gefunden und es funktioniert auch....ich probiere das ander rsync mal aus...

      Meine Idee ist es, die Aufnahmen auf die 2. Maschine zu schieben, um sie weiter zu verarbeiten(z.B. Schneiden), da ich viele Musiksendungen aufnehme und sie in der Regel nicht lösche, sondern auf meine NAS schiebe. Deshalb die Idee mit dem Kopieren (cp -avru). Leider ist die Option -u im Vu+ nicht vorgesehen, Hilfe kam von
      n020222

      Ich erhalte jetzt zwar keine Fehlermeldung mehr, das Überschreiben ist damit leider nicht zuverlässig ausgeschaltet, offenbar gibt es ein Problem mit dem Timestamp.

      Wenn das rsync ähnliche macken wie cp hat, würde es mir meine geschnittenen Aufnahmen wieder mit den ungeschnittenen überschreiben. Ich versuche es mal, da sich die Timestamps in diesem Fall ja deutlich unterscheiden.

      Vielen Dank nochmal für die unterstützung!
    • Ich habe das an einem Ordner Script wie folgt ausprobiert:

      for FILE in ls "/media/hdd/movie/0/"*".ts"; do
      if [ -f "${FILE}".rec ]&&[ -f "${FILE}" ]; then
      cp -avru "${FILE}"* $ZIEL
      fi
      done

      Das funktioniert aber nur innerhalb eines Ordners, Unterordner werden nicht mitgenommen. /usr/bin/cp erzeugt eine Fehlermeldung.....
      Eine Idee, wie man Unterordner korrekt mit einbeziehen kann?
    • Danke für den Hinweis, Automove hatte ich schonmal und versuch jetzt, ob es zumindest Teile bewältigt....leider hat mein erster Versuch eine parallel laufende Aufnahme gestört, vermute ich zumindest.... Im Augenblick setze ich auf eine Kombination von Automove und rsync.
    • Meden schrieb:

      Das funktioniert aber nur innerhalb eines Ordners,
      ...Eine Idee, wie man Unterordner korrekt mit einbeziehen kann?

      Shell-Script

      1. ZIEL="/home/root/"
      2. QUELLE="/hdd/movie"
      3. X=`find $QUELLE -type d`
      4. for DIRECTORY in $X; do
      5. for FILE in ls ${DIRECTORY}/*.ts; do
      6. if [ ! -f "${FILE}".rec ]&&[ -f "${FILE}" ]; then
      7. /usr/bin/cp -avru "${FILE}" $ZIEL
      8. fi
      9. done
      10. done
      Alles anzeigen
    • sollte so funtionieren.

      Quellcode

      1. ZIEL="/home/root/"
      2. QUELLE="/hdd/movie"
      3. unction fcp() {
      4. for f in $1/* ; do
      5. if [ -d "$f" ]; then
      6. fcp "$f" "$2${f##*/}/"
      7. fi
      8. if [ -f "$f" ] && [ ${f##*.} == "ts" ]; then
      9. echo "$f" "-->" "$2"
      10. mkdir "$2"
      11. /usr/bin/cp -avru "$f" "$2"
      12. fi
      13. done
      14. }
      15. fcp $QUELLE $ZIEL
      Alles anzeigen

      ich verstehe immer noch nicht, warum du das nicht mit automove machst.

      sch... 5 Minuten Regel...

      Quellcode

      1. ZIEL="/home/root/"
      2. QUELLE="/hdd/movie"
      3. function fcp() {
      4. for f in $1/* ; do
      5. if [ -d "$f" ]; then
      6. fcp "$f" "$2${f##*/}/"
      7. fi
      8. if [ -f "$f" ] && [ ${f##*.} == "ts" ]; then
      9. echo "$f" "-->" "$2"
      10. mkdir "$2"
      11. /usr/bin/cp -avru "$f" "$2"
      12. fi
      13. done
      14. }
      15. fcp $QUELLE $ZIEL
      Alles anzeigen
      Rechtschreibfehler sind beabsichtigt, sie fördern ein genaueres Lesen
      Debug Log aktivieren Putty Telnet Screenshots erstellen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hajeku123 ()

    • Automove habe ich im Verdacht, bei laufenden Aufnahmen diese zu stören(Ruckler uÄ.). Man muß also jeden Tag aufs Neue sich Zeitfenster suchen, in denen nichts läuft. Bei mir funktioniert auch das Deaktivieren nicht, wenn ich mehere Tage nicht kümmern kann....
      Ich möchte vor jedem Kopieren feststellen ob eine Aufnahme in x-Minuten anliegt und wenn ja diese arbwarten, so daß nie Kopieren und Aufnahme gleichzeitig laufen. Außerdem habe ich 4 verschiebene Ziele, zu denen ich kopieren möchte.....

      Ich nutze im Augenblick Automove.....ist aber nicht die Lösung.....
    • Liegt evtl. an deiner Festplatte, automove ist natürlich ein weiterer (Lese)Zugriff auf selbige. Ich habe diese Probleme nicht oder sie sind mir noch nicht aufgefallen ;)
    • Ich nehme auf eine interne SSD auf und lasse direkt nach der Aufnahme verschieben.

      Meden schrieb:

      Automove habe ich im Verdacht, bei laufenden Aufnahmen diese zu stören(Ruckler uÄ.). Man muß also jeden Tag aufs Neue sich Zeitfenster suchen, in denen nichts läuft. Bei mir funktioniert auch das Deaktivieren nicht, wenn ich mehere Tage nicht kümmern kann....
      Ich möchte vor jedem Kopieren feststellen ob eine Aufnahme in x-Minuten anliegt und wenn ja diese arbwarten, so daß nie Kopieren und Aufnahme gleichzeitig laufen.
      schaue ich mir an, kommt Update

      Meden schrieb:

      Außerdem habe ich 4 verschiebene Ziele, zu denen ich kopieren möchte.....
      Wie genau von wo nach wo?

      Meden schrieb:

      Ich nutze im Augenblick Automove.....ist aber nicht die Lösung.....
      Wird sich ändern.
      Rechtschreibfehler sind beabsichtigt, sie fördern ein genaueres Lesen
      Debug Log aktivieren Putty Telnet Screenshots erstellen