Kā uzraudzīt (kopēt/dublēt/saspiest) datu progresu, izmantojot pv komandu


Veicot dublējumus, kopējot/pārvietojot lielus failus savā Linux sistēmā, iespējams, vēlēsities pārraudzīt notiekošās darbības gaitu. Daudziem termināla rīkiem nav funkcionalitātes, kas ļautu skatīt progresa informāciju, kad komanda darbojas caurulē.

Šajā rakstā mēs aplūkosim svarīgu Linux/Unix komandu ar nosaukumu pv.

Pv ir uz terminālu balstīts rīks, kas ļauj pārraudzīt to datu gaitu, kuri tiek sūtīti caur cauruli. Izmantojot komandu pv, tā vizuāli parāda šādu informāciju:

  1. Pagājušais laiks.
  2. Pabeigto procentuālā daļa, ieskaitot progresa joslu.
  3. parāda pašreizējo caurlaidspēju.
  4. kopējais pārsūtīto datu skaits.
  5. un ETA (aptuvenais laiks).

Kā instalēt pv komandu Linux?

Šī komanda pēc noklusējuma nav instalēta lielākajā daļā Linux izplatījumu, tāpēc to varat instalēt, veicot tālāk norādītās darbības.

Vispirms jums jāieslēdz EPEL repozitorijs un pēc tam palaidiet šo komandu.

# yum install pv
# dnf install pv            [On Fedora 22+ versions]
Dependencies Resolved

=================================================================================
 Package       Arch              Version                   Repository       Size
=================================================================================
Installing:
 pv            x86_64            1.4.6-1.el7               epel             47 k

Transaction Summary
=================================================================================
Install  1 Package

Total download size: 47 k
Installed size: 93 k
Is this ok [y/d/N]: y
Downloading packages:
pv-1.4.6-1.el7.x86_64.rpm                                 |  47 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : pv-1.4.6-1.el7.x86_64                                         1/1 
  Verifying  : pv-1.4.6-1.el7.x86_64                                         1/1 

Installed:
  pv.x86_64 0:1.4.6-1.el7                                                        

Complete!
# apt-get install pv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  pv
0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded.
Need to get 33.7 kB of archives.
After this operation, 160 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe pv amd64 1.2.0-1 [33.7 kB]
Fetched 33.7 kB in 0s (48.9 kB/s)
Selecting previously unselected package pv.
(Reading database ... 216340 files and directories currently installed.)
Preparing to unpack .../archives/pv_1.2.0-1_amd64.deb ...
Unpacking pv (1.2.0-1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up pv (1.2.0-1) ...
# emerge --ask sys-apps/pv

Portu var izmantot, lai to instalētu šādi:

# cd /usr/ports/sysutils/pv/
# make install clean

VAI pievienojiet bināro pakotni šādi:

# pkg_add -r pv

Kā es varu izmantot pv komandu Linux?

pv lielākoties lieto kopā ar citām programmām, kurām trūkst iespēju uzraudzīt notiekošās operācijas gaitu. Jūs varat to izmantot, ievietojot to cauruļvadā starp diviem procesiem, izmantojot atbilstošās pieejamās iespējas.

Pv standarta ievade tiks nodota tā standarta izvadam, un progress (izeja) tiks izdrukāts uz standarta kļūdas. Tam ir līdzīga uzvedība kā kaķu komandai Linux.

Pv komandas sintakse ir šāda:

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

Ar pv izmantotās opcijas ir sadalītas trīs kategorijās: displeja slēdži, izvades modifikatori un vispārīgās opcijas.

  1. Lai ieslēgtu displeja joslu, izmantojiet opciju -p.
  2. Lai skatītu pagājušo laiku, izmantojiet opciju –timer.
  3. Lai ieslēgtu ETA taimeri, kas mēģina uzminēt, cik ilgs laiks paies pirms operācijas pabeigšanas, izmantojiet opciju –eta. Minējums ir balstīts uz iepriekšējiem pārsūtīšanas ātrumiem un kopējo datu lielumu.
  4. Lai ieslēgtu likmju skaitītāju, izmantojiet opciju –rate.
  5. Lai parādītu kopējo līdz šim pārsūtīto datu daudzumu, izmantojiet opciju –baiti.
  6. Lai vizuālās norādes vietā parādītu progresa informāciju par veselu skaitļu procentiem, izmantojiet opciju -n. Tas var būt labi, ja izmantojat pv ar dialoglodziņa komandu, lai parādītu progresu dialoglodziņā.

  1. Lai pirms progresa informācijas parādīšanas gaidītu, kamēr pirmais baits tiks pārsūtīts, izmantojiet opciju –gaidiet.
  2. Lai pieņemtu, ka kopējais pārsūtāmo datu apjoms ir SIZE baiti, aprēķinot procentuālo daļu un ETA, izmantojiet opciju –izmēru SIZE.
  3. Lai norādītu sekundes starp atjauninājumiem, izmantojiet opciju –interval SECONDS.
  4. Izmantojiet opciju-force, lai piespiestu darbību. Šī opcija liek pv rādīt vizuālo materiālu, ja standarta kļūda nav termināls.
  5. Vispārīgās iespējas ir –palīdzēt parādīt lietošanas informāciju un –versija parādīt informāciju par versiju.

Izmantojiet pv komandu ar piemēriem

1. Ja neviena opcija nav iekļauta, pv komandas darbojas ar noklusējuma opcijām -p, -t, -e, -r un -b.

Piemēram, lai nokopētu opensuse.vdi failu uz /tmp/opensuse.vdi, palaidiet šo komandu un skatieties progresa joslu ekrāna sūtījumā.

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

2. Lai izveidotu zip failu no faila/var/log/syslog, izpildiet šo komandu.

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

3. Lai saskaitītu rindu, vārdu un baitu skaitu failā/etc/hosts, parādot tikai progresa joslu, izpildiet šo komandu zemāk.

# pv -p /etc/hosts | wc

4. Pārraugiet dublējuma faila izveidošanas gaitu, izmantojot tar utilītu.

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

5. Izmantojot pv un dialoga termināļa rīku, izveidojiet dialoglodziņa progresa joslu šādi.

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

Kopsavilkums

Šis ir labs uz terminālu balstīts rīks, kuru varat izmantot ar rīkiem, kuriem nav iespēju, lai uzraudzītu tādu darbību gaitu kā failu kopēšana/pārvietošana/dublēšana, lai iegūtu vairāk iespēju, pārbaudiet man pv.

Es ceru, ka šis raksts jums noderēs un, ja jums ir kādas idejas, ko pievienot par pv komandas izmantošanu, jūs varat ievietot komentāru. Un, ja tā lietošanas laikā rodas kādas kļūdas, varat arī atstāt komentāru.