Linux の ETA 付きファイルコピー?

Linux の ETA 付きファイルコピー?

ディスク間で大量のファイルをコピーしています。データは約 16 GB あります。進行状況情報や完了予定時間も確認したいです。コマンドラインから

何かアドバイス?

答え1

使用rsync --human-readable --progress

単一ファイルとブロックデバイスの場合は もありますpv。また、正確な進行状況バーが本当に必要な場合は、tar次のように pv と一緒に を使用してください。

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; }

ただし、GNU はまだ ACL や拡張属性をサポートしていないので、"acl" または "xattrs" オプションでマウントされたファイルシステムをコピーする場合は、rsync (" " および " " オプションtar付き) を使用する必要があります。個人的には、次のものを使用しています。--acls--xattrs

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

--deleteまた、および/またはオプションを使用するかどうかも検討してください--numeric-ids

答え2

代わりにdd私は提案しますpv例:

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

答え3

を試しましたかrsync -P? を使用している場合dd、たとえば、tar -cf - src | dd | (cd dest; tar -xf -)Ctrl-T (SIGINFO) を使用して進行状況を確認できるはずです。

関連情報