Wyszukiwanie w witrynie

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 pvPipe 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.