Kopieren mit Telnet

  • Hallo,


    habe heute versucht den Inhalt meiner internen Festplatte auf eine externe zu kopieren.
    Dazu habe ich zunächst den Befehl "cp -r quelle ziel" genutzt.
    Dies ging allerdings sehr langsam, so dass ich nach weiterer Recherche den Befehl "cp -r quelle ziel &" genutzt habe.
    Hier läuft es wesentlich schneller. Soweit so gut.


    Leider überschreibt der Befehl jedoch bereits im Zielordner vorhandene Dateien.
    Möchte eigentlich den Movieordner auf der externen Platte sichern und hierfür immer nur die neuen Aufnahmen rüberschieben. Dazu möchte ich allerdings den ganzen Ordner kopieren, damit ich nicht einzeln raussuchen muss, was neu dazugekommen ist.
    Die bereitsvorhandenen Aufnahmen sollen dann einfach nicht nochmal kopiert werden.


    Habe es dann mit dem Aufruf "cp -r -i quelle ziel %" probiert. Dann fragt er ja nach bei bereits vorhandener Datei. Allerdings, wenn ich dann ein n für no eingebe, sagt er Befehl nicht gefunden. Was muss ich da denn eingeben?


    Am liebsten wäre es mir jedoch, einen Befehl einzugeben, der einfach das Beschriebene ausführt ohne Benutzerinteraktion, gibt es sowas?


    Danke, habe eben 4 Stunden im Internet sämtliche Seiten durchsucht. Befehle wie -u, die z.T. im Zusammenhang mit Telnet genannt werden, funktionieren bei mir nicht.
    Vielleicht kann mir jemand von euch helfen.

  • oder das cp binary aus den debian mipsel sourcen borgen, mit der Option -n werden existierende Dateien nicht überschrieben

    Gruß Fred

    Die Dreambox ist tot, es lebe die Dreambox

  • Hallo,


    danke für die schnellen Antworten!
    Habe den ganzen Nachmittag verbracht rsync einzurichten.


    Dabei sind aber ein Paar Fragen aufgetreten und Erfahrungen, die ich auch gerne mitteilen möchte:


    1.
    Hatte ja schon Dateien per copy verschoben. Die hat rsync angefangen zu überschreiben, dies habe ich dann mit dem -u Parameter unterbunden. Vermute, dass er dies aufgrund des neueren Timestamps der per copy verschobenen Dateien getan hat.
    Aber soweit ich das beim einarbeiten in rsync verstanden habe, kopiert doch rsync ohne das -t auch die timestamps nicht mit.
    D.h. Wenn ich rsync mehrmals ohne -t Aufrufe überschreibt er alles immer wieder, so habe ich es auch hier im Forum gelesen? Gilt das auch beim nicht übertragen der Dateirechte (-p) Was für einen Sinn hat dann überhaupt ein Aufruf von rsync ohne Parameter, gar keinen oder?


    2.
    Habe den Befehl mit telnet und dem Schalter -v aufgerufen, also dass er Rückmeldung geben soll. Dann habe ich das kommandozeilenfenster in Windows geschlossen. rsync läuft dann ja weiter. Gibt es einen Weg, wenn ich das Fenster geschlossen habe, mich wieder neu über telnet anzumelden und diese Rückmeldungen wieder zu erhalten?
    Hintergrund ist, dass ich meinen Pc nach dem Anstoßen der Übertragung ausmachen möchte, aber zwischendurch gerne wissen möchte wie weit der Fortschritt ist.


    3.
    Möchte gerne auch wie von Fred empfohlen das cp aus den Debian Mipsel sourcen einspielen.
    Habe versucht dies in den Paketen unter Packages.debian.org zu finden. Allerdings erfolglos. Wo kann ich das denn finden und wie dann einspielen?


    4.
    Ist das normal, dass es so lange dauert beim kopieren, naja sind immerhin fast 1 TB.. Gibt es einen schnelleren Weg, den internen HDD-Anteil auf eine am Frontusb angeschlossene externe HDD zu kopieren?


    Alles in allem bin ich durch eure Hilfe u Investition eines Nachmittages gut vorangekommen!


    VG


    Michael

  • zu 4.


    USB2.0 schafft je nach Platte ca. 20-25MB/Sekunde (Erfahrungswert) bei 1TB Daten dauert das ca.


    1TB Daten = 1048576MB / 25MB/s = 41943 Sekunden ~ 699 Minuten ~ 11 Stunden 40 Minuten


    wobei 25MB/s schon eher an der Obergrenze des Möglichen ist ...



    Wenn du die Platte per eSATA anschließt, kannst du mit ca. 45 - 50MB/sec. Übertragungsrate rechnen, vielleicht auch etwas mehr - also etwa mehr als doppelt so schnell wie über USB. Schneller wirst du es mit der Dream nicht schaffen. Am PC mit Linux über SATA kann man sicher noch ein paar MB/sec. rausquetschen, hängt aber auch von der Performance der Platten ab.



    Edit:
    wenn beide Platten in ext2/ext3 oder xfs formatiert sind, mit NTFS auf der Zielplatte kommt man nicht annähernd an diese Werte ran



    Edit 2:


    zu 3.
    wg. dem cp:


    das cp binary findest du im Paket coreutils (squeeze oder whezey), ausserdem muss man da auch noch einige Abhängigkeiten installieren bzw. klauen, damit das klappt: libselinux, libacl und libattr (libattr1 und libacl1 liegt am OE2.0 feed - ist aber nicht in allen alternativ images verfügbar)


    die .deb pakete am Win-PC mit 7zip entpacken, das binary und die libs auf die Box schieben, Dateirechte beachten oder die .deb Paktet mit ar (nicht das busybox ar sondern wieder aus debian borgen) und tar direkt auf der Box entpacken. Das cp binary z.B. nach /media/hdd/bin damit bei einem update das binary nicht durch den busybox link überschrieben wird, die libs nach /lib (samt symlinks)



    Code
    root@dm800se:~# ls -al /lib/libacl* /lib/libattr* /lib/libselinux*
    lrwxrwxrwx    1 root     root            15 Jan  1 01:17 /lib/libacl.so.1 -> libacl.so.1.1.0
    -rwxr-xr-x    1 root     root         32588 Jan  1 01:16 /lib/libacl.so.1.1.0
    lrwxrwxrwx    1 root     root            16 Jan  1  1970 /lib/libattr.so.1 -> libattr.so.1.1.0
    -rwxr-xr-x    1 root     root         17924 Jan  1  1970 /lib/libattr.so.1.1.0
    -rwxr-xr-x    1 root     root        134172 Jan  1 01:13 /lib/libselinux.so.1
    root@dm800se:~#


    Gruß Fred

    Die Dreambox ist tot, es lebe die Dreambox

    4 Mal editiert, zuletzt von Fred Bogus Trumper ()

  • Zitat

    Dann habe ich das kommandozeilenfenster in Windows geschlossen. rsync läuft dann ja weiter.

    Tut es das? Kann ich nicht glauben weil normal wird die alles beendet wenn die Telnet Session geschlossen wird. Außer man schickt es in den Hintergrund mit &.

    --
    openwrt + minicom + screen = 24/7 Bootlog

    Einmal editiert, zuletzt von Schnello ()

  • normal wird die alles beendet wenn die Telnet Session geschlossen wird


    mit trap kann man das verhindern, vor dem cp Befehl folgendes eingeben

    Code
    trap '' 1


    beendest du telnet mit Alt-F4 oder Ctrl-C, in dem Fall musst du Ctrl-C auch abfangen

    Code
    trap '' 1 2 3


    der Befehl ignoriert einfach das Eintreffen der Signale SIGHUP, SIGINT und SIGQUIT (1,2,3), die Signale bekommst du alle mit kill -l aufgelistet

    Code
    ''


    oder

    Code
    ""


    ist leerer String, kann auch ein Befehl drin stehen, z.B. echo


    mrvica

  • nohup wäre auch noch eine Möglichkeit, wobei


    cp <source> <target> &


    mit E2 auch reicht, der Prozess läuft auch weiter, wenn das Terninal geschlossen wird

    Gruß Fred

    Die Dreambox ist tot, es lebe die Dreambox