Linux-Dateikopie mit ETA?

Linux-Dateikopie mit ETA?

Ich kopiere eine große Menge an Dateien zwischen Festplatten. Es sind ungefähr 16 GB an Daten. Ich würde gerne Informationen zum Fortschritt und sogar eine geschätzte Fertigstellungszeit sehen.von der Kommandozeile.

Irgendein Rat?

Antwort1

Verwenden rsync --human-readable --progress.

Für einzelne Dateien und Blockgeräte gibt es auch pv. Und wenn Sie wirklich einen genauen Fortschrittsbalken benötigen, versuchen Sie es tarmit pv – etwa so:

source=/the/source/directory
target=/the/target/directory
size=$(du -sx "$source")
cd "$source"
find . xdev -depth -not -path ./lost+found -print0 \
    | tar --create --atime-preserve=system --null --files-from=- \
          --format=posix --no-recursion --sparse \
    | pv --size ${size}k \
    | { cd "$target"; \
        tar --extract --overwrite --preserve-permissions --sparse; }

Beachten Sie jedoch, dass GNU tarnoch keine ACLs oder erweiterten Attribute unterstützt. Wenn Sie also Dateisysteme kopieren, die mit den Optionen „acl“ oder „xattrs“ gemountet wurden, müssen Sie rsync (mit den Optionen „ --acls“ und „ --xattrs“) verwenden. Ich persönlich verwende:

rsync --archive --inplace --hard-links --acls --xattrs --devices --specials \
    --one-file-system --8-bit-output --human-readable --progress /source /target

--deletePrüfen Sie auch, ob Sie die Optionen und/oder verwenden möchten --numeric-ids.

Antwort2

Stattdessen ddwürde ich vorschlagenpv, z.B:

% tar -cf - INPUT | pv -rbe -s SIZE | tar -xf - -C DEST 

Antwort3

Haben Sie es versucht rsync -P? Wenn Sie beispielsweise verwenden dd, tar -cf - src | dd | (cd dest; tar -xf -)sollten Sie Ihren Fortschritt mit Strg-T (SIGINFO) verfolgen können.

verwandte Informationen