Pv - Pokaż postęp dla [Kopiuj/Kopia zapasowa/Kompresuj] dane w systemie Linux
Podczas tworzenia kopii zapasowych oraz kopiowania/przenoszenia dużych plików w systemie Linux warto monitorować postęp trwającej operacji. Wiele narzędzi terminalowych nie ma funkcji umożliwiającej przeglądanie informacji o postępie, gdy polecenie jest uruchomione w potoku.
W tym artykule przyjrzymy się ważnemu poleceniu Linux/Unix o nazwie pv – Pipe Viewer.
Pv to narzędzie oparte na terminalu, które pozwala monitorować postęp danych przesyłanych potokiem. Polecenie pv umożliwia wizualne przedstawienie następujących informacji:
- Czas, który upłynął.
- Procent ukończenia zawiera pasek postępu.
- Pokazuje aktualną przepustowość.
- Łączna ilość przesłanych danych.
- oraz ETA (szacowany czas).
Jak zainstalować polecenie pv w systemie Linux?
Polecenie pv nie jest domyślnie instalowane w większości dystrybucji Linuksa, dlatego możesz je zainstalować, wykonując poniższe czynności.
Zainstaluj pv w systemie Linux opartym na RHEL
Najpierw musisz włączyć repozytorium EPEL, a następnie uruchomić następującą komendę yum lub dnf, aby je zainstalować.
yum install pv
OR
dnf install pv
Zainstaluj pv na Linuksie opartym na Debianie
sudo apt-get install pv
Zainstaluj pv w innych dystrybucjach Linuksa
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]
Jak używać polecenia pv w systemie Linux?
pv jest najczęściej używany z innymi programami, które nie mają możliwości monitorowania postępu bieżącej operacji. Można z niego skorzystać, umieszczając go w potoku pomiędzy dwoma procesami, z dostępnymi odpowiednimi opcjami.
Standardowe wejście pv zostanie przekazane na standardowe wyjście, a postęp (wyjście) zostanie wydrukowany na standardowym błędzie. Działa podobnie do polecenia cat w systemie Linux.
Składnia polecenia pv jest następująca:
pv file
pv options file
pv file > filename.out
pv options | command > filename.out
comand1 | pv | command2
Opcje używane z pv są podzielone na trzy kategorie: przełączniki wyświetlacza, modyfikatory wyjścia i opcje ogólne.
Opcje modyfikatorów wyświetlania Pv
Niektóre opcje znajdują się w obszarze modyfikatorów wyświetlania.
- Aby włączyć pasek wyświetlacza użyj opcji
-p
. - Aby zobaczyć czas, który upłynął, użyj opcji
--timer
. - Aby włączyć licznik czasu ETA, który próbuje odgadnąć, ile czasu zajmie zakończenie operacji, użyj opcji
--eta
. Przypuszczenie opiera się na poprzednich szybkościach transferu i całkowitym rozmiarze danych. - Aby włączyć licznik stawek użyj opcji
--rate
. - Aby wyświetlić całkowitą ilość przesłanych dotychczas danych należy skorzystać z opcji
--bytes
. - Aby wyświetlić informacje o postępie w postaci procentowej liczby całkowitej zamiast wskazania wizualnego, użyj opcji
-n
. Może to być przydatne, gdy używasz pv z poleceniem dialogowym, aby pokazać postęp w oknie dialogowym.
Opcje modyfikatorów wyświetlania Pv
Niektóre opcje znajdują się w obszarze modyfikatorów wyników.
- Aby poczekać na przesłanie pierwszego bajtu przed wyświetleniem informacji o postępie, użyj opcji
--wait
. - Aby założyć, że całkowita ilość danych do przesłania to SIZE bajtów podczas obliczania procentu i ETA, użyj opcji
--size SIZE
. - Aby określić sekundy pomiędzy aktualizacjami, użyj opcji
--interval SECONDS
. - Użyj opcji
--force
, aby wymusić operację. Ta opcja zmusza pv do wyświetlania wizualizacji, gdy błąd standardowy nie jest terminalem. - Ogólne opcje to
--help
do wyświetlania informacji o użyciu i –version do wyświetlania informacji o wersji.
Polecenie Pv z przykładami w systemie Linux
1. Jeśli nie uwzględniono żadnej opcji, polecenia pv są uruchamiane z domyślnymi -p
, -t
, -e
, -r
i -b
.
Na przykład, aby skopiować plik opensuse.vdi do /tmp/opensuse.vdi, uruchom to polecenie i obejrzyj pasek postępu na ekranie.
pv opensuse.vdi > /tmp/opensuse.vdi
2. Aby utworzyć plik ZIP z pliku /var/log/syslog, uruchom następujące polecenie.
pv /var/log/syslog | zip > syslog.zip
3. Aby policzyć liczbę linii, słów i bajtów w pliku /etc/hosts, wyświetlając tylko pasek postępu, uruchom poniższe polecenie.
pv -p /etc/hosts | wc
4. Monitoruj postęp tworzenia pliku kopii zapasowej za pomocą narzędzia tar.
tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)
5. W przykładzie używamy polecenie dd do zapisania pliku ISO na dysku flash USB:
dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M
6. Łączne użycie narzędzia terminalowego pv i dialog w celu utworzenia paska postępu okna dialogowego w następujący sposób.
tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70
Streszczenie
Jest to dobre narzędzie oparte na terminalu, którego można używać z narzędziami, które nie mają takiej możliwości, do monitorowania postępu operacji, takich jak kopiowanie/przenoszenie/tworzenie kopii zapasowych plików. Więcej opcji znajdziesz w man pv .
Mam nadzieję, że ten artykuł okaże się pomocny. Jeśli masz jakieś pomysły na temat korzystania z polecenia pv, możesz zamieścić komentarz. A jeśli podczas korzystania z niego pojawią się jakieś błędy, równie dobrze możesz zostawić komentarz.