Как указал Марк Плотник, утилитаpvпомогает очень просто. Просто для grep и zgrep это действительно очень просто:
zcat web.log.2020-01-17.log.gz | pv -L 10m -q | grep someText
или для grep:
cat web.log.2020-01-17.log | pv -L 10m -q | grep someText
Скорость передачи 10 м (10 мегабайт в секунду )снижает потребление ЦП на моем сервере примерно до 8% и поддерживает его на низком уровне.
Преимуществом pv является простота, недостатком является то, что вам нужно опытным путем определить подходящую скорость передачи для вашего сервера. В CentOS6 pv доступен после установки с помощью yum install pv
Проблема в том, что подстановка команды $(perl...)
будет выполнена немедленно, так как у вас есть qsub <<EOF
, а не qsub <<'EOF'
, чтобы иметь ${i}
расширение.
Perl будет выводить строки, которые могут содержать пробелы, например
PERL_MB_OPT="--install_base \"/home/user/perl5\""
но к тому времени, когда вы оцените их при выполнении окончательного скрипта, он станет
PERL_MB_OPT=--install_base "/home/user/perl5"
, и вы получите сообщение об ошибке /home/user/perl5
— это каталог. Самое простое решение — отложить Perl на потом :
eval "\$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"