Прикрутил к небольшому скрипту дампа полезную маленькую утилитку pv (pipeviewer), теперь при архивации показыается бегущая шкала и остаток времени, полезно очень.
Как это выглядит:
$ dumparch ./.thunderbird 202MB 0:01:29 [9,67MB/s] [===> ] 20% ETA 0:05:47
#!/bin/sh
DATE=`/bin/date «+%0Y%0m%0d-%0k%0M%0S»`
FILE=$1
NAME=`basename $FILE`
DSTFILENAME=$DATE-$NAME.tar.gz
SRCSIZE=`du -sb $FILE | grep -o ‘[0-9]*s’`
tar -chzf — $FILE | pv -s $SRCSIZE > $DSTFILENAME
Что происходит? tar отдаёт сжатые данные не в файл, как в оригинале, а через пайп в pv, которая их обрабатывает. Далее уже пайп сливается в файл.
Для того, чтобы pv могла вычислить сколько ей времени осталось через -s передаётся размер, вычисляемый через du.
Правда я потом уже понял, что размер то передаю исходного каталога, а в пайп пихаю сжатые данные, так что оценка получается несколько завышенной. Так что заканчивается как-то так:
$ dumparch ./.thunderbird 1,84GB 0:05:35 [5,62MB/s] [==================================> ] 63%
Правильнее будет сначала tar-ить в пайп без сжатия, потом pv обрабатывать, а потом уже gzip-ом сжимать и сливать в файл. В итоге как-то так:
tar -chf - $FILE | pv -s $SRCSIZE | gzip > $DSTFILENAME
Теперь всё нормально:
$ dumparch ./.thunderbird 2,89GB 0:05:03 [9,72MB/s] [======================================================>] 100%
Автор: Дмитрий