Как да наблюдавате напредъка на (копиране/архивиране/компресиране) на данни с помощта на командата ‘pv’

Сподели

Когато правите резервни копия и копирате/премествате големи файлове на вашата Linux система, може да искате да наблюдавате напредъка на текуща операция. Много терминални инструменти нямат функционалността, която да ви позволи да видите информация за напредъка, когато команда се изпълнява в канал.

Показване на лентата за напредък на копиране/архивиране/Tar файл в Linux
Показване на лентата за напредък на копиране/архивиране/Tar файл в Linux

В тази статия ще разгледаме важна команда за Linux/Unix, наречена pvПреглед на тръби.

Pv е базиран на терминал инструмент, който ви позволява да наблюдавате напредъка на данните, които се изпращат по канал. При използване на pv команда, тя ви дава визуално показване на следната информация:

  • Времето, което е изтекло.
  • Процентът изпълнени включва лента за напредък.
  • Показва текущата производителност.
  • Общите прехвърлени данни.
  • и ETA (приблизително време).

Как да инсталирате pv команда в Linux?

The pv командата не е инсталирана по подразбиране в повечето Linux дистрибуции, следователно можете да я инсталирате, като следвате стъпките по-долу.

Инсталирайте pv на базиран на RHEL Linux

Първо, трябва да включите хранилището на EPEL и след това да изпълните следната команда yum или dnf, за да го инсталирате.

# yum install pv
OR
# dnf install pv          

Инсталирайте pv на базиран на Debian Linux

$ sudo apt-get install pv

Инсталирайте pv на други Linux дистрибуции

$ sudo emerge -a pv        [On Gentoo Linux]
$ sudo apk add pv          [On Alpine Linux]
$ sudo pacman -S pv        [On Arch Linux]
$ sudo zypper install pv   [On OpenSUSE]    

Как да използвам командата pv в Linux?

pv се използва предимно с други програми, които нямат възможност да наблюдават напредъка на текуща операция. Можете да го използвате, като го поставите в конвейер между два процеса, с наличните подходящи опции.

Стандартният вход на pv ще бъде предадено на неговия стандартен изход и напредъкът (изходът) ще бъде отпечатан на стандартна грешка. Има подобно поведение на командата cat в Linux.

Синтаксисът на pv командата е следната:

$ pv file
$ pv options file
$ pv file > filename.out
$ pv options | command > filename.out
$ comand1 | pv | command2 

Опциите, използвани с pv са разделени на три категории, превключватели на дисплея, изходни модификатори и общи опции.

Опции за модификатори на Pv дисплей

Някои опции са под модификаторите на дисплея.

  • За да включите лентата на дисплея, използвайте -p опция.
  • За да видите изминалото време, използвайте --timer опция.
  • За да включите таймера за ETA, който се опитва да познае колко време ще отнеме преди завършването на дадена операция, използвайте --eta опция. Предположението се основава на предишни скорости на трансфер и общия размер на данните.
  • За да включите брояч на тарифи, използвайте --rate опция.
  • За да покажете общото количество прехвърлени досега данни, използвайте --bytes опция.
  • За да покажете информация за напредъка на цял процент вместо визуална индикация, използвайте -n опция. Това може да е добре при използване pv с диалоговата команда за показване на напредъка в диалогов прозорец.

Опции за модификатори на Pv дисплей

Някои опции са под изходни модификатори.

  • За да изчакате, докато първият байт бъде прехвърлен, преди да покажете информация за напредъка, използвайте --wait опция.
  • Да приемем, че общото количество данни за прехвърляне е РАЗМЕР байтове, когато изчислявате процент и ETA, използвайте --size SIZE опция.
  • За да зададете секунди между актуализациите, използвайте --interval SECONDS опция.
  • Използвайте --force опция за принудителна операция. Тази опция принуждава pv да показва визуални елементи, когато стандартната грешка не е терминал.
  • Общите опции са --help за показване на информация за употреба и – версия за показване на информация за версията.

Pv команда с примери в Linux

1. Когато не е включена опция, pv командите се изпълняват по подразбиране -p, -t, -e, -r и -b настроики.

Например, за да копирате opensuse.vdi файл към /tmp/opensuse.vdiизпълнете тази команда и гледайте лентата за напредък в скрийнкаста.

# pv opensuse.vdi > /tmp/opensuse.vdi

Копиране на файлове Показване на лентата за напредъка

2. За да направите zip файл от вашия /var/log/syslog файл, изпълнете следната команда.

# pv /var/log/syslog | zip > syslog.zip

Zip файл Показване на лентата на напредъка

3. За да преброите броя на редовете, думите и байтовете в /etc/hosts файл, докато показва само лентата за напредъка, изпълнете тази команда по-долу.

# pv -p /etc/hosts | wc

Преброяване на редове, думи и байтове в Linux

4. Наблюдавайте напредъка на създаването на архивен файл с помощта на помощната програма tar.

# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

Създаване на резервно копие на Tar: Показване на лентата на напредъка

5. В примера използваме dd команда за да запишете ISO файла на USB флаш устройството:

# dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M

6. Използвайки pv и диалогов прозорец базиран на терминал инструмент заедно, за да създадете лента за прогрес на диалоговия прозорец, както следва.

# tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70
Създаване на диалогов прозорец за напредък
Създаване на диалогов прозорец за напредък

Резюме

Това е добър инструмент, базиран на терминал, който можете да използвате с инструменти, които нямат възможност, за да наблюдавате напредъка на операции като копиране/преместване/архивиране на файлове, за повече опции проверете човек pv.

Надявам се да намерите тази статия за полезна и можете да публикувате коментар, ако имате някакви идеи да добавите относно използването на командата pv. И ако получите грешки, докато го използвате, можете също да оставите коментар.

Публикациите се превеждат автоматично с google translate


Сподели