Есть такая утилитка под названием pv (Pipe Viewer).
С её помощью можно наглядно видеть, сколько времени будет выполняться та или иная команда.
Ее установка для CentOS из Epel проста как 3 копейки:
Простейшее её использование, вычисляем хеш-сумму:
$ pv kino.avi | md5sum
$ 158MB 0:00:03 [ 45MB/s] [=========================================>] 100%
7451f8ac288b3815e7b1894e9ec14f24 -
Всё наглядно, не правда ли?
Сжимаем файл:
$ tar -czf - kino.avi | pv > kino.tgz
37,7MB 0:00:15 [2,37MB/s] [ <=> ]
Показывает, только сколько времени осталось не понять. Поправим это.
$ tar -cf - kino.avi | pv -s $(du -sb kino.avi | awk '{print $1}') | gzip > kino.tgz
58MB 0:00:15 [10,5MB/s] [==========> ] 57% ETA 0:00:14
Сжимаем всю папку с файлами:
$ tar -cf - . | pv -s $(du -sb . | awk '{print $1}') | gzip > mydir.tgz
Распаковка:
$ pv mydir.tgz | tar xzf -
Установка да, а вот юзанье совсем непонятно, она в примерах фтыкается в самые разные место строки: то вначале строки, то в конце то посредине. Можна просветить эти моменты?
Смотря что хочешь измерить.
Например, распакуем файл TEST.IMG.GZ.
pv TEST.IMG.GZ | gunzip -c > TEST.IMG
Тем самым такая конструкция позволяет:
1) Измерить скорость считывания архива TEST.IMG.GZ т.к. pv считывает сжатый архив и передаёт в gunzip.
2) Измерить, сколько времени потребуется для полного считывания сжатого архива (размер файла TEST.IMG.GZ программа pv определяет автоматически т.к. этот файл ему подаётся напрямую).
И не позволяет:
1) Узнать размер распакованного файла.
2) Узнать скорость распаковки.
Сделаем тоже самое, но поменяем их местами
gunzip -c TEST.IMG.GZ | pv > TEST.IMG
Тем самым такая конструкция позволяет:
1) Измерить скорость распаковки архива TEST.IMG.GZ т.к. gunzip подаёт программе pv уже распакованные данные.
И не позволяет:
1) Узнать, сколько времени осталось т.к. pv не знает размер уже распакованного файла.
2) Узнать скорость считывания архива.
Но если размер расжатого файла известно (например 50000000 байт), то
gunzip -c TEST.IMG.GZ | pv -s 50000000 > TEST.IMG
Позволяет:
1) Измерить скорость распаковки архива TEST.IMG.GZ
2) Узнать, сколько времени осталось для записи распакованных данных на жесткий диск.
И не позволяет:
1) Узнать скорость считывания архива.