Как да контролираме напредъка на операцията на Linux команден ред чрез използване на PV команда
Ако сте системен администратор на Linux, няма съмнение, че трябва да прекарвате повечето от работното си време в командния ред - инсталиране и премахване на пакети; статистика на системата за мониторинг; копиране, преместване, изтриване на неща; проблеми при отстраняване на грешки; и още. Има моменти, когато командата се задейства, и това отнема известно време, преди операцията да приключи. Има обаче и моменти, когато изпълняваната от вас команда просто виси и ви оставя да се досетите за това, което всъщност се случва зад кулисите.
Обикновено Linux командите не предоставят информация, свързана с хода на текущата операция, което е много важно, особено когато имате ограничено време. Това обаче не означава, че сте безпомощни - съществува команда, наречена pv
, която показва полезна информация за напредъка, свързана с текущата операция на командния ред. В тази статия ще обсъдим тази команда, както и нейните характеристики чрез някои лесни за разбиране примери.
PV командване
Разработено от Андрю Ууд, PV - което означава "Pipe Viewer" - показва информация, свързана с напредъка на данните чрез тръбопровод. Информацията включва изтеклото време, завършеното процент (с лентата за напредъка), текущата пропускателна способност, общите прехвърлени данни и ЕТА.
"За да го използвате, поставете го в тръбопровод между два процеса с подходящи опции. Стандартният му вход ще бъде предаван до стандартния му изход и напредъкът ще бъде показан при стандартна грешка "
Горето обяснява командната страница на човека.
Изтегляне и инсталиране
Потребителите на базирани на Debian системи като Ubuntu могат лесно да инсталират помощната програма, като изпълняват следната команда в терминала:
sudo apt-get инсталирате pv
Ако използвате друго дистрибуция на Linux, можете да инсталирате командата, като използвате инсталирания на вашата система пакетен мениджър. След успешното инсталиране можете да използвате помощната програма за команден ред в различни сценарии (вижте следващия раздел). Струва си да се отбележи, че pv версия 1.2.0 е използвана във всички примери, споменати в тази статия.
Характеристики и използване
Много често срещан сценарий, който най-вероятно повечето от нас (които работят на командния ред в Linux), ще се отнасят до копиране на филмов файл от USB устройство на вашия компютър. Ако се опитате да завършите гореспоменатата операция, използвайки командата cp
, ще трябва да изчакате сляпо, докато копирането завърши или се изхвърли някаква грешка.
Въпреки това командата pv
може да бъде полезна в този случай. Ето един пример:
pv /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
И ето изхода:
Така, както можете да видите по-горе, командата показва много полезна информация, свързана с текущата операция, включително количеството прехвърлени данни, изтеклото време, скоростта на трансфера, лентата за прогрес, прогреса в процент и размера на оставащо време.
Командата pv
предоставя различни превключватели на дисплея. Например можете да използвате -p
за показване на процент, -t
за таймер, -r
за скорост на трансфера, -e
за ета и -b
за брояч на байтове. Доброто е, че няма да трябва да си спомняте никоя от тях, тъй като всички те са разрешени по подразбиране. Обаче, ако се нуждаете изключително от информация, свързана само с определен дисплей в изхода, можете да преминете този ключ в командата pv
.
Има и превключвател на дисплей -n
който позволява на командата да покаже целочислен процент, по един на ред при стандартна грешка, вместо редовния индикатор за прогрес. Следва пример за това превключване в действие:
pv -n /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
Този специален бутон за показване е подходящ за сценарии, в които искате да изведете изхода в диалоговата команда.
Придвижвайки се, има и опция за командния ред, -L
, която ви позволява да променяте скоростта на предаване на данни от командата pv. Например, използвах -L
да огранича скоростта на трансфер на данни до 2MB / s.
pv -L 2m /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
Както може да се види на екрана по-горе, скоростта на предаване на данни беше ограничена според моята посока.
Друг сценарий, при който може да ви помогне, е да компресирате файлове. Ето един пример за това как можете да използвате тази команда, докато компресирате файлове с помощта на Gzip:
pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip> ./Desktop/fnf.log.gz
заключение
Както ви е отбелязано, pv
е полезна малка полезност, която може да ви помогне да спестите ценно време в случай, че операцията на командния ред не се държи както се очаква. Освен това информацията, която се показва, може да се използва и в скриптове на черупки. Силно препоръчвам тази команда; Струва си да опитате.