¿Copia de archivos de Linux con ETA?

¿Copia de archivos de Linux con ETA?

Estoy copiando una gran cantidad de archivos entre discos. Hay aproximadamente 16 GB de datos. Me gustaría ver información sobre el progreso e incluso un tiempo estimado de finalización.desde la línea de comando.

¿Algún consejo?

Respuesta1

Usar rsync --human-readable --progress.

Para archivos individuales y dispositivos de bloque también existe pv. Y si realmente necesitas una barra de progreso precisa, intenta usarla tarcon pv, algo como esto:

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

Sin embargo, tenga en cuenta que GNU taraún no admite ACL ni atributos extendidos, por lo que si está copiando sistemas de archivos montados con las opciones "acl" o "xattrs", deberá usar rsync (con las opciones " --acls" y " --xattrs"). Personalmente uso:

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

También averigüe si desea utilizar las opciones --deletey/o --numeric-ids.

Respuesta2

En lugar de ddsugeriríapv, p.ej:

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

Respuesta3

Has probado rsync -P? Si está usando dd, por ejemplo, tar -cf - src | dd | (cd dest; tar -xf -)debería poder usar Ctrl-T (SIGINFO) para ver su progreso.

información relacionada