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:
- Pagājušais laiks.
- Pabeigto procentuālā daļa, ieskaitot progresa joslu.
- parāda pašreizējo caurlaidspēju.
- kopējais pārsūtīto datu skaits.
- 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.
- Lai ieslēgtu displeja joslu, izmantojiet opciju -p.
- Lai skatītu pagājušo laiku, izmantojiet opciju –timer.
- 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.
- Lai ieslēgtu likmju skaitītāju, izmantojiet opciju –rate.
- Lai parādītu kopējo līdz šim pārsūtīto datu daudzumu, izmantojiet opciju –baiti.
- 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ņā.
- Lai pirms progresa informācijas parādīšanas gaidītu, kamēr pirmais baits tiks pārsūtīts, izmantojiet opciju –gaidiet.
- 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.
- Lai norādītu sekundes starp atjauninājumiem, izmantojiet opciju –interval SECONDS.
- Izmantojiet opciju-force, lai piespiestu darbību. Šī opcija liek pv rādīt vizuālo materiālu, ja standarta kļūda nav termināls.
- 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.