Как посмотреть прогресс dd linux

34. smem – Создание отчётов по использованию памяти

smem сообщает об использовании физической памяти, принимая во внимание общие страницы памяти. Неподелённая память показывается как USS

Общая память делится поровну между процессами, разделяющими её. Неподелённая память (USS), плюс доля процесса в совместной памяти показывается как PSS. USS и PSS включают только физическое использование памяти. Они не включают память, выгруженную на диск в файл подкачки.

Память может показываться по процессам, по пользователям, mapping или по всей системе. Доступен как текстовый режим вывода, так и графический.

smem
  PID User     Command                         Swap      USS      PSS      RSS 
  709 mial     /usr/bin/VBoxClient --displ        0       96      332     1308 
  708 mial     /usr/bin/VBoxClient --draga        0      100      335     1336 
  711 mial     /usr/bin/VBoxClient --seaml        0      100      337     1340 
  712 mial     /usr/bin/VBoxClient --clipb        0      168      371     1372 
  717 mial     /usr/bin/VBoxClient --displ        0      152      508     3416 
  604 mial     /usr/bin/dbus-daemon --conf        0      472      599     3956 
  714 mial     /usr/bin/VBoxClient --seaml        0      232      616     3644 
  710 mial     /usr/bin/VBoxClient --draga        0      308      694     3676 
  648 mial     /bin/bash /usr/bin/cinnamon        0      420      735     3172 
  634 mial     /usr/lib/dconf/dconf-servic        0      672      763     4772 
  573 mial     /usr/bin/dbus-daemon --sess        0      816      942     4300 
  560 mial     /usr/lib/gdm/gdm-x-session         0      824      951     6020 
  716 mial     /usr/bin/VBoxClient --clipb        0      684     1071     4412 
  606 mial     /usr/lib/at-spi2-core/at-sp        0      952     1164     6892 
  597 mial     /usr/lib/gvfs/gvfsd-fuse /r        0     1160     1274     5668 
  592 mial     /usr/lib/gvfs/gvfsd                0      968     1313     6680 
  689 mial     /usr/lib/gvfs/gvfsd-trash -        0     1284     1691     7736 
  554 mial     /usr/lib/systemd/systemd --        0     1064     1747     6524 
 1189 mial     bash                               0     1408     1897     4920 
  898 mial     bash                               0     1616     2107     5192 
  637 mial     /usr/lib/gvfs/gvfs-udisks2-        0     1816     2280     9756 
  848 mial     /usr/lib/gvfs/gvfsd-metadat        0     2244     2397     7328 
  652 mial     /usr/lib/cinnamon-settings-        0     2188     3106    13372 
  624 mial     /usr/bin/pulseaudio --daemo        0     3268     4896    11860 
  599 mial     /usr/lib/at-spi2-core/at-sp        0     4952     5118    10196 
  672 mial     /usr/lib/polkit-gnome/polki        0     4596     5668    21668 
  668 mial     nm-applet                          0     7380     9450    29708 
 1223 mial     python2 /usr/bin/smem              0     9948     9991    11984 
  618 mial     /usr/lib/cinnamon-settings-        0     9436    12656    37960 
  575 mial     cinnamon-session --session         0     9696    14185    45444 
  667 mial     nemo -n                            0    12256    14775    37496 
  892 mial     /usr/lib/gnome-terminal/gno        0    15196    18087    40904 
  669 mial     /usr/bin/python3 /usr/bin/c        0    15284    18493    37776 
  845 mial     cinnamon-screensaver               0    24564    29875    57856 
  562 mial     /usr/lib/xorg-server/Xorg v        0    65008    69721    92372 
  650 mial     cinnamon                           0   352060   368556   421884

Creating a simple Progress Bar for a shell script

Sometimes all we need is a little patience. Or, at least, something to watch while we’re waiting. The infamous Progress Bar is an example of such a thing. If your script needs to wait a while, particularly if it needs to wait for a fixed amount of time, this little progress bar may be of help.

For example, you may need to wait for some external process, such as some remote web service, to complete, but you want to give the user something to watch to show that the script has not died.

In this ficticious example, we are waiting for the URL «http://localhost/status» to return «Ready». Other things might be to wait for an entry to appear in DNS, for a virtual machine to complete booting, for a database entry to be created, and so on. This example is nice and simple to test for, though (and quite easy to set up for yourself — just set up a web server with a file «status» in the ).

#!/bin/bash

progress_bar()
{
  local PROG_BAR_MAX=${1:-30}
  local PROG_BAR_DELAY=${2:-1}
  local PROG_BAR_TODO=${3:-"."}
  local PROG_BAR_DONE=${4:-"|"}
  local i

  echo -en "" (to end the "" bar)
  # 2)   Control-M (aka Carriage Return) (aka Octal \0015)
  # 3)   "^M\0015["
  for i in `seq 1 $PROG_BAR_MAX`
  do
    echo -en "$PROG_BAR_DONE"
    sleep ${PROG_BAR_DELAY}
  done
  echo
}

while :
do
  curl http://localhost/status 2>/dev/null | grep "Ready" && break
  echo "`date`: System is not ready. Checking again in 10 seconds..."
  progress_bar 10
done
echo "`date`: System is ready."

Download the progressbar.sh script

The progress bar shows a row of dots («.») and gradually replaces them with vertical pipes («|»):

When the 10 seconds are up, all 10 vertical pipes are shown, like so:

You may have noticed that the function takes up to four arguments — we have just called it with «10» as the width of the progress bar. You can also specify how long to between dots, and also what character to use for unused and used time slots. So you can also have this, which will pass the script’s arguments to the function:

  progress_bar $@

Here, I have called it a few times with different arguments to show the results…

The secret of the progress bar is the overwriting of the line: We use (Carriage Return with no Newline) to send the cursor back to the beginning of the line after it’s drawn the initial row of dots. This is shown in the hashed out . To input the special character in , type this sequence of keystrokes, without the padding spaces:

  e c h o   - e n " ] CONTROL-V CONTROL-M [ "

The CONTROL-V tells that the next character will be a literal, not to be interpreted.

Or — you can do what the downloaded script does, which is to use Octal characters. It’s a bit less convenient, but if you just run man ascii, you can get the Octal forms quite easily. Carriage Return is \0015. So you can use: — which is easy to copy/paste without losing the essential BACKSPACE character.

Команда PV в Linux

Согласно официальной документации, команда PV контролирует поток данных через pipe. Команда выводит следующую информацию о текущей операции: время , прошедшее, процент завершения (с прогресс бар), текущую скорость, пропускная способность общего объема передаваемых данных, и ETA.

“Для того, чтобы использовать его, вставьте его в pipeline между двумя процессами, с соответствующими опциями,” объясняет man page. “Его стандартный ввод будет передан на свой стандартный вывод и прогресс будет показан на стандартной ошибке.”

Теперь, покажем использование команды PV на примере. Но до этого, убедитесь, что утилита присутствует в вашей системе. Если нет, то вы можете легко загрузить и установить ее на системахDebian(например,Ubuntu) с помощью следующей команды:

sudo apt-get install pv

Как вы можете видеть, команда PV отображается индикатор выполнения, а также другую полезную информацию. Это поведение по умолчанию команды. Тем не менее, если вы хотите ограничить вывод, вы можете сделать это, используя переключения дисплеев. Например, следующая команда будет отображаться только индикатор прогресса, и ничего больше.

pv -p /media/himanshu/1AC2-A8E3/Maldives-2016/* | gzip > ./Desktop/trip-pictures.gz

Это потому, что мы использовали-pпереключатель дисплея, который говорит pv только включить индикатор выполнения. Для получения полного списка переключателей дисплея, смотрите команды man page.

Тогда есть некоторые выходные модификаторы. Например, при использовании вариант с командой-Wили–wait скажет ему, чтобы ждать, пока первый байт не был передан, прежде чем показывать какую – либо информацию о ходе работы или каких – либо вычисления ЕТА. Это особенно полезно в тех случаях, когда допустим требует дополнительной информации, прежде чем начнет.

И, наконец, команда PV также предлагает некоторые модификаторы передачи данных. Например, если вы хотите, вы можете ограничить передачу определенного количества байтов в секунду. Если взглянуть на скриншот ранее, скорость передачи данных составляет более 18MBps. Теперь предположим, что вы хотите ограничить до 5Mbps, для этого вам необходимо выполнить следующую команду:

pv -L 5m /media/himanshu/1AC2-A8E3/Maldives-2016/* | gzip > ./Desktop/trip-pictures.gz

Вариант -L с последующим значением ‘5m’ делает трюк здесь. См, приведенную выше команду в действии на следующем скриншоте:

“Суффикс ‘k’, ‘m’, ‘g’, или ‘t’ могут быть добавлены для обозначения килобайт (* 1024), мегабайтах, и так далее,” объясняет man page. Более подробную информацию о передачи данных, а также модификаторов передачи данных также доступна при помощи команды man page.

Description

pv

To use it, insert it in a pipeline between two processes, with the appropriate options. Its standard input will be passed through to its standard output and
progress will be shown on standard error.

pv will copy each supplied FILE in turn to standard output ( means standard input), or if no FILEs are specified just standard
input is copied. This is the same behaviour as cat(1).

A simple example to watch how quickly a file is transferred using nc(1):

A similar example, transferring a file from another process and passing the expected size to pv:

A more complicated example using numeric output to feed into the dialog(1) program for a full-screen progress display:

Frequent use of this third form is not recommended as it may cause the programmer to overheat.

Data Transfer Modifiers

-L RATE, —rate-limit RATE
Limit the transfer to a maximum of RATE bytes per second. A suffix of «k», «m», «g», or «t» can be added to denote kilobytes (*1024), megabytes, and
so on.
-B BYTES, —buffer-size BYTES
Use a transfer buffer size of BYTES bytes. A suffix of «k», «m», «g», or «t» can be added to denote kilobytes (*1024), megabytes, and so on. The
default buffer size is the block size of the input file’s filesystem multiplied by 32 (512kb max), or 400kb if the block size cannot be determined.
-R PID, —remote PID
If PID is an instance of pv that is already running, -R PID will cause that instance to act as though it had been given this
instance’s command line instead. For example, if pv -L 123k is running with process ID 9876, then running pv -R 9876 -L 321k will cause it to
start using a rate limit of 321k instead of 123k. Note that some options cannot be changed while running, such as -c, -l, and -f.

4) Advanced Copy

Advanced Copy, or advcpmv, is a mod for the cp and mv utilities which adds a progress bar and provides some information on ongoing transferred.

Installing Advanced Copy

You can install progress on any distro with these steps.

You might get this error, while running “./configure” command.

Run the following command to fix that error and rerun the ./configure command again:

Replace the original cp and mv commands with these two new commands

Advanced Copy Usage with Examples

The cp and mv commands stay same, the only change is adding the or option to the cp command. The option is used to copy directories recursively. Here is an example of the command:

Or

We’ve seen a couple of tools and how they can be used to monitor progress on commands. The pv command is easy to set up and can monitor any command line activity. The progress utility is limited to only coreutils commands. Rsync has the inbuilt ability to monitor file transfers and advanced copy is a patch applied to only the cp and mv commands to show progress. Based on your trial, you can decide which of these is best for you.

Authors

andrew.wood@ivarch.comhttp://www.ivarch.com/

Kevin Coyner <kcoyner@debian.org>
(Debian package maintainer)

Jakub Hrozek <jhrozek@redhat.com>
(Fedora package maintainer)

Cedric Delfosse <cedric@debian.org>
(previous Debian package maintainer)

Eduardo Aguiar <eduardo.oliveira@sondabrasil.com.br>
(provided Portuguese translation)

Stephane Lacasse <tecknojunky@tecknojunky.com>
(provided French translation)
http://www.tecknojunky.com/

Marcos Kreinacke <public@kreinacke.com>
(provided German translation)

Bartosz Fenski <fenio@o2.pl>
(provided Polish translation, along with Krystian Zubel)http://skawina.eu.org/

Joshua Jensen
(reported RPM installation bug)

Boris Folgmann
(reported cursor handling bug)http://www.folgmann.com/en/

Mathias Gumz
(reported NLS bug)

Daniel Roethlisberger
(submitted patch to use lockfiles for -c if terminal locking fails)

Adam Buchbinder
(lots of help with a Cygwin port of -c)

Mark Tomich
(suggested -B option)

Gert Menke
(reported bug when piping to dd with a large input buffer size)

Ville Herva <Ville.Herva@iki.fi>
(informative bug report about rate limiting performance)

Elias Pipping
(patch to compile properly on Darwin 9)

Patrick Collison
(similar patch for OS X)

Boris Lohner
(reported problem that -L does not complain if given non-numeric value)

Laszlo Ersek
(reported shared memory leak on SIGINT with -c)http://phptest11.atw.hu/

Использование утилиты pv в Unix/Linux

Например, можно использовать утилиту pv вместо cat, следующим образом:

# pv linux-notes.org.zone.txt | gzip > linux-notes.org.tar.gz
 963 MB 0:00:50 [2.04MiB/s]  10% ETA 0:04:50

Собственно, все наглядно выглядит. Не правда ли?

Давайте упакуем некоторую папку в архив:

# tar -czf - backUPs | pv > backUPs.tgz
 455MiB 0:00:13 [35.7MiB/s] 

Наглядно, но не знаешь когда операция завершиться, по этому, давайте добавим ключ «-s» чтобы вывести ETA, например:

# tar -czf - backUPs | pv -s $(du -sb backUPs| grep -o '*') > backUPs.tgz
100MB 0:00:50 [3.88MB/s]  20% ETA 0:04:50

Так же, можно составлять команды из несколько копий pv:

# tar -cf - backUPs | pv -cN tar -s $(du -sb ./backUPs | grep -o '*') | gzip | pv -cN gzip > backUPs.tgz
tar: 97.1MB 0:00:08 [12.3MB/s]  0% ETA 1:50:26
gzip: 13.1MB 0:00:08 [1.6MB/s] 

Можно выводить прогресс-бар в виде цифр (в столбик), например:

$ tar -czf - backUPs | pv -n > backUPs.tgz
2
4
6
8
10
12
......
100

Такс, например, вам нужно ограничить скорость изменять скорость передачи данных через pv утилиту. Например, я использовал -L для ограничения скорости передачи данных до  4МБ/с:

$ tar -czf - backUPs | pv -L 4m > backUPs.tgz
30MiB 0:00:08 [4.17MiB/s] 

Как я уже описывал разные опции, но опишу опции еще раз:

  • -c — Данная опция не выводит информацию друг поверх друга.
  • -N — Называем шкалу определенным именем.

Можно поигратся и выполнить:

# pv /dev/urandom > /dev/null
66MB 0:00:44 [ 6.8MB/s] 

Чтобы узнать как быстро компьютер читает с /dev/zero, выполните:

$ pv /dev/zero > /dev/null

Обнуление диска, можно выполнить следющим образом:

# pv < /dev/zero > /dev/sda

Симуляция ввода:

$ echo "You could simulate some text here" | pv -qL 10

Чтобы проверить тест пропускной способности сети ssh, выполните:

$ yes | pv | ssh $your_host_here "cat > /dev/null"

Или:

$ pv /dev/zero|ssh $your_host_here 'cat > /dev/null'

И так, команда что выше, подключается к хосту через ssh и отображает скорость передачи в реальном времени, направляя все переданные данные в /dev/null.

Пример использования pv и dd утилиты:

# dd if=/dev/sdc bs=4096 | pv -s 2G | sudo dd bs=4096 of=~/USB_BLACK_BACKUP.IMG

Чтобы поиграться, выполните:

$ curl -s http://artscene.textfiles.com/vt100/movglobe.vt | pv -q -L 9600

Используя инструмент pv и dialog, вы можете создать панель выполнения следующим образом:

# tar -czf - ./home/captain/backups/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

Работа pv + mysql в Unix/Linux

Создать mysqldump можно так:

$ pv my_DB.sql.gz | gunzip | mysql -uroot -p my_DB

Или:

$ mysqldump -uroot -p my_DB | pv | gzip -9 >m y_DB.sql.gz

Влить созданный mysqldump можно так:

$ zcat my_DB.sql.gz | pv -cN zcat | mysql -uroot -p my_DB

Более нагляднее, будет:

$ zcat my_DB.sql.gz | pv --progress --size `gzip -l %s | sed -n 2p | awk '{print $2}'` | mysql -uroot -p my_DB

Чтобы сделать его еще приятнее, вы можете добавить progres NAME, например:

# zcat my_DB.sql.gz | pv --progress --size `gzip -l %s | sed -n 2p | awk '{print $2}'` --name ' Importing.. ' | mysql -uroot -p my_DB

Вот  и все, статья «Утилита pv — прогресс bar для консольных утилит в Unix/Linux» завершена.

Display Switches

pv-p-t-e-r-b

-p, —progress
Turn the progress bar on. If standard input is not a file and no size was given (with the -s modifier), the progress bar cannot indicate how close
to completion the transfer is, so it will just move left and right to indicate that data is moving.
-t, —timer
Turn the timer on. This will display the total elapsed time that pv has been running for.
-e, —eta
Turn the ETA timer on. This will attempt to guess, based on previous transfer rates and the total data size, how long it will be before completion. This
option will have no effect if the total data size cannot be determined.
-r, —rate
Turn the rate counter on. This will display the current rate of data transfer.
-b, —bytes
Turn the total byte counter on. This will display the total amount of data transferred so far.
-n, —numeric
Numeric output. Instead of giving a visual indication of progress, pv will give an integer percentage, one per line, on standard error, suitable for
piping (via convoluted redirection) into (1). Note that -f is not required if -n is being used.
-q, —quiet
No output. Useful if the -L option is being used on its own to just limit the transfer rate of a pipe.

Команда Progress в Linux

Progress (ранее известный как CV) это утилита командной строки, которая обеспечивает прогресс для текущих операций, связанных  с основными командамиCoreutils, такие как cp, mv, dd, tar, gzip/gunzip, cat, и многое другое.” Он также может показатьрасчетное времяипропускную способность, а также обеспечивает режим ‘top-like’, как (мониторинг),” говорится в официальной документации.

Перед установкой Прогресс, вы должны сначала убедиться, что библиотека ‘Ncurses’ есть в вашей системе, так как команда зависит от этой библиотеки. Если ее нет, то пользователиDebian/ Ubuntu можно загрузить и установить пакет Ncurses с помощью следующей команды:

sudo apt-get install libncurses5-dev

Затем загрузите командный пакет Progress из репозитория GitHubс помощью следующей команды:

git clone https://github.com/Xfennec/progress.git

Войдите в каталог «Progress» и выполните следующие команды:

make
sudo make install

Вот и все. Команда Progress теперь будет установлена на вашем компьютере Linux. Следующий скриншот (взят из проекта на страницеGitHub ) показывает команду в действии:

Как вы можете видеть, команда Progress дает вам информацию обо всех текущих операциях, которые включают командыCoreutils. Как и любой другой инструмент командной строки Linux, Progress также предлагает несколько вариантов командной строки. Ниже приведен список опций, которые могут быть полезными для вас:

  • -m (–monitor): цикл, пока наблюдаемые процессы по-прежнему работает
  • -М (–monitor-continuously): мониторинг, никогда не останавливается (аналог прогресса )
  • -с (–command cmd): мониторинг только этой команды название (например,Firefox). Эта опция может быть использована несколько раз в командной строке.
  • -p (–pid id): мониторинг только этот числового идентификатора процесса (например: `pidof Firefox`). Эта опция может быть использована несколько раз в командной строке.
  • -i (–ignore-file file): не сообщает процесс “file”. Если файл не существует, вы должны дать полный и чистый абсолютный путь. Эта опция может быть использована несколько раз в командной строке.

Прогресс команды Linux с помощью progress

Установка progress

Эта утилита не поставляется с системой по умолчанию. Но установить ее очень просто, программа есть в официальных репозиториях большинства дистрибутивов. Например, в Ubuntu:

В других дистрибутивах она может быть более старой версии и назваться cv. Также вы можете собрать программу из исходников. Единственная зависимость — библиотека ncurces. В Ubuntu 16.04 ее можно установить такой командой:

В прежних версиях Ubuntu:

В Fedora и CentOS:

Когда удовлетворите зависимости утилиты, выполните следующую команду для загрузки исходников с GitHub:

Затем распакуйте полученный архив:

Измените текущий каталог с помощью cd:

Запустите сборку и установку:

Программа готова к работе.

Смотрим прогресс команды с помощью progress

После завершения установки запустите progress следующей командой:

В результате получится что-то вроде:

Теперь давайте запустим копирование видео из папки на рабочий стол и посмотрим что произойдет:

Команда progress покажет прогресс копирования cp:

Выполним progress еще раз:

Как видите, утилита показывает информацию о прогрессе копирования файла, процент скопированных данных, количество скопированных данных и общий размер файла. Это очень полезно при копировании больших файлов, например, при копировании фильмов или образов дисков. То же самое будет если запустить dd, mv, tar, zip или другую подобную утилиту.

В утилиты есть много полезных опций. Опция -w заставляет программу показывать время, оставшееся до окончания операции:

и еще раз:

Если вы хотите видеть упрощенный вывод без дополнительных сообщений используйте опцию -q. И наоборот для показа всех предупреждений и ошибок воспользуйтесь -d.

Например, лучше использовать cv со следующими опциями:

Вы можете отслеживать состояние процесса пока он запущен:

Если вы хотите постоянно наблюдать за прогрессом всех команд используйте опцию -М:

Или ее эквивалент:

Очень популярный вот такой вариант:

или:

Также можно посмотреть прогресс linux только нужной программы, например, прогресс загрузки файла в firefox:

Или проверить активность web-сервера:

22. Netdata

Netdata – это чрезвычайно оптимизированная утилита Linux, которая в реальном времени (посекундно) обеспечивает мониторинг производительности систем Linux, приложений, SNMP устройств и т.д. и показывает полностью интерактивные графики, которые через веб-браузер показывают абсолютно все собранные значения для их анализа.

Программа была создана чтобы быть установленной на систему Linux без прерывания на ней текущих запущенных приложений. Вы можете использовать этот инструмент для контроля и обзора в реальном времени того, что происходит или только что произошло в ваших системах Linux и приложениях.

Что мониторит Netdata:

  • Общее использование и использование каждого ядра ЦПУ, прерывания (interrupts), отложенные прерывания (softirqs) и частоту.
  • Общую память, оперативную память, использование раздела подкачки (Swap) и Kernel
  • Операции ввода/вывода на диск (по каждому диску: скорость, операции, backlog, utilization и пр.)
  • Мониторинг сетевых интерфейсов, включая: скорость пропускания, пакеты, ошибки, отброшенное и пр.)
  • Мониторы подключений, события, ошибки и пр. файервола Linux Netfilter / iptables
  • Процессы (запущенные, заблокированные, форки, активные и пр.)
  • Системные приложения с деревом процессов (ЦПУ, память, swap, чтение/запись на диск, потоки и т.д.)
  • Мониторинг статуса Apache и Nginx с mod_status.
  • Мониторинг баз данных MySQL: запросы, обновления, блокировки, проблемы, потоки и т.д.
  • Очередь сообщений почтового сервера
  • Мониторинг пропускной способности и запросов Squid прокси
  • Сенсоры железа (температура, вольтаж, вентиляторы, напряжение, влажность и т.д.)
  • SNMP устройства

Об установке и описание работы с Netdata смотрите «Как настроить мониторинг производительности реального времени с Netdata на Ubuntu 16.10».

5. Netstat – Статистика сети

Netstat – это инструмент командной строки для мониторинга статистики входящих исходящих сетевых пакетов, а также статистики интерфейсов. Это весьма полезный инструмент для каждого системного администратора для контроля производительности сети и решения проблем, связанных с сетью.

netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost.local:privoxy 0.0.0.0:*               LISTEN     
tcp        0      0 localhost.localdom:9475 0.0.0.0:*               LISTEN     
tcp6       0      0 :ssh                :*                  LISTEN     
tcp6       0      0 :https              :*                  LISTEN     
tcp6       0      0 :mysql              :*                  LISTEN     
tcp6       0      0 :www-http           :*                  LISTEN     
udp        0      0 HackWare:bootpc         0.0.0.0:*                          
raw6       0      0 :ipv6-icmp          :*                  7          
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2           STREAM     LISTENING     13574    /tmp/.X11-unix/X0
unix  2           STREAM     LISTENING     13573    @/tmp/.X11-unix/X0
unix  2               DGRAM                    11811    /run/user/120/systemd/notify
unix  2           STREAM     LISTENING     14509    @/tmp/dbus-l6VTvQ0c
unix  2           STREAM     LISTENING     11815    /run/user/120/systemd/private
unix  2           STREAM     LISTENING     11820    /run/user/120/bus
unix  2           STREAM     LISTENING     11822    /run/user/120/pulse/native

25. Sysstat – Система контроля производительности всё-в-одном

Ещё один инструмент мониторинга для вашей системы Linux. На самом деле Sysstat – это не команда, это название проекта. В действительности Sysstat – это пакет, который включает много инструментов слежения за производительностью, к ним относятся iostat, sadf, pidstat и много других инструментов, которые показывают вам множество статистической информации о вашей ОС Linux.

Особенности Sysstat

  • Доступна во многих стандартных репозиториях дистрибутивов Linux.
  • Может собирать статистику об использовании RAM, CPU, SWAP. Помимо этого, способность мониторить активность ядра Linux, NFS сервера, сокетов, TTY и файловых систем.
  • Способность мониторить статистику ввода и вывода для устройств, задач и т.п.
  • Способность выводить отчёты о сетевых интерфейсах и устройствах, в том числе с поддержкой IPv6.
  • Sysstat может показать вам также статистику энергопотребления (использование, устройства, скорость вентиляторов и т.д.).
  • Многие другие функции.

1) PV Command

Pv is a command-line based tool that allows you to monitor the progress of data being transferred using pipe. The pv command gives you a visual view of the following information.

  • Time elapsed
  • Percentage completed using a progress bar.
  • Current throughput rate.
  • Total data transferred.
  • ETA (Estimated Time).

Installing Pv

You can install pv on your distro using the following commands

Fedora, CentOS and RHEL

Debian, Ubuntu and Linux Mint

Gentoo Linux

FreeBSD Linux

Pv Usage with Examples

The general syntax for pv is pv

The option turns the progress bar on, option activates the total elapsed time pv has been running for, the option provides the ETA to completion based on the transfer rate and data size, the option shows the current rate of the transfer and finally the option shows the total amount of data transferred so far.

Monitor the progress of creating an archive using gzip

In this example, we use pv with gzip in the following example:

In this example, we provide the options and the file in question and then pipe it to gzip with a redirection to the file we want to archive.

Output Modifiers

-W, —wait
Wait until the first byte has been transferred before showing any progress information or calculating any ETAs. Useful if the program you are piping to or
from requires extra information before it starts, eg piping data into gpg(1) or mcrypt(1) which require a passphrase before data
can be processed.
-s SIZE, —size SIZE
Assume the total amount of data to be transferred is SIZE bytes when calculating percentages and ETAs. The same suffixes of «k», «m» etc can be used
as with -L.
-l, —line-mode
Instead of counting bytes, count lines (newline characters). The progress bar will only move when a new line is found, and the value passed to the
-s option will be interpreted as a line count.
-i SEC, —interval SEC
Wait SEC seconds between updates. The default is to update every second. Note that this can be a decimal such as 0.1.
-w WIDTH, —width WIDTH
Assume the terminal is WIDTH characters wide, instead of trying to work it out (or assuming 80 if it cannot be guessed).
-H HEIGHT, —height HEIGHT
Assume the terminal is HEIGHT rows high, instead of trying to work it out (or assuming 25 if it cannot be guessed).
-N NAME, —name NAME
Prefix the output information with NAME. Useful in conjunction with -c if you have a complicated pipeline and you want to be able to tell
different parts of it apart.
-f, —force
Force output. Normally, pv will not output any visual display if standard error is not a terminal. This option forces it to do so.
-c, —cursor
Use cursor positioning escape sequences instead of just using carriage returns. This is useful in conjunction with -N (name) if you are using
multiple pv invocations in a single, long, pipeline.

Выводы

Чтобы использовать всю мощь Linux пользователям часто приходится работать в командной строке. Чаще всего мы смотрим содержимое, копируем файлы, распаковываем архивы. В этой инструкции мы рассмотрели утилиту process, которую можно использовать для просмотра прогресса dd и других системных команд.

Мне всегда было интересно посмотреть прогресс копирования cp для больших файлов. Честно говоря, я часто имею дело с большими файлами при просмотре фильмов на своем ноутбуке. Теперь я использую утилиту cv. Почему бы и вам не попробовать, вам понравиться!

Источник перевода: http://www.unixmen.com/check-progress-commands-cv-utility/

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: