Jak monitorować postęp poleceń systemu Linux (z pv i postępem)
Opublikowany: 2022-01-29 Zamiast latać na ślepo, użyj poleceń Linux pv
i progress
, aby śledzić postęp polecenia. Te narzędzia wyświetlają paski postępu dla poleceń, które normalnie ich nie mają. Zobaczysz też szacowany czas do zakończenia.
Jeśli lecisz samolotem długodystansowym bez ekranów wideo w oparciach foteli, nie jest łatwo zorientować się, jak daleko jesteś w podróży. Wiesz, kiedy wystartowałeś. Wiesz, ile czasu ma potrwać lot. Ale skąd wiesz, czy jesteś na dobrej drodze, na czas, czy opóźniasz się? Jeśli nie chcesz oglądać filmu w locie, zwykle możesz przełączyć ekran wideo, aby wyświetlić mapę z pozycją samolotu na niej. Otrzymasz również statystyki, takie jak przewidywany czas przybycia (ETA), co jest świetne.
Rozpoczęcie polecenia z okna terminala może czasami przypominać lot długodystansowy bez ekranu wideo. Nic nie wskazuje na to, czy wszystko jest w porządku, czy proces się zawiesił, ani jak blisko jest ukończenia. Migający kursor nie jest zbyt pouczający.
Polecenia pv
i progress
dają trochę statystyk i trochę wizualnych informacji zwrotnych. Możesz zobaczyć, jak blisko jest do zakończenia procesu. Oznacza to, że otrzymujesz ETA za uruchomione procesy. W porównaniu ze wpatrywaniem się w kursor wygrywa.
Instalowanie pv
Musisz zainstalować pv
.
Aby zainstalować pv
na Ubuntu, użyj tego polecenia:
sudo apt-get zainstaluj pv
Aby zainstalować pv
w Fedorze, użyj tego polecenia:
sudo dnf zainstaluj pv
Aby zainstalować pv
na Manjaro, użyj tego polecenia:
sudo pacman - syu pv
Korzystanie z pv
pv
oznacza przeglądarkę rur. Orurowanie musi być gdzieś zaangażowane w komendę. Oto przykład, w którym przesyłamy obraz ISO przez zip
, aby utworzyć skompresowany plik zip ISO.
Aby spowolnić polecenia na tyle, aby można było zrobić zrzut ekranu, niektóre pliki w przykładach użytych w tym artykule zostały zapisane na starym, wolnym, zewnętrznym USB o nazwie SILVERXHD.
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip
Informacje, które przekazuje nam pv
, można zobaczyć w dolnej linii wyświetlacza.
Od lewej do prawej wyświetlane informacje to:
- Dane przekazane do tej pory.
- Dawno upłynął czas.
- Szybkość przesyłania danych (przepustowość).
- Pasek postępu i procent ukończonej figury.
- Szacowany czas pozostały do zakończenia (ETA).
Kopiowanie pliku za pomocą pv
Aby skopiować plik z danymi wyjściowymi z pv
, użyj tego polecenia:
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso
Podczas kopiowania pliku otrzymujemy raport z postępów.
Kopiowanie wielu plików za pomocą pv
Aby skopiować wiele plików i folderów za pomocą pv
, musimy użyć małej sztuczki. Używamy tar
do przenoszenia plików za nas.
tar -c pliki pomocy/ | pv | tar -x -C Dokumenty/
Część polecenia tar -c help-files/
nakazuje tar
utworzenie ( -c
) archiwum plików w folderze help-files. Jest to przesyłane przez pv
, dzięki czemu otrzymujemy wyświetlanie postępu. Następnie jest przesyłany z powrotem do tar
dla ostatniej części polecenia. Archiwum jest rozpakowywane ( -x
), a katalog jest zmieniany ( -C
) na Dokumenty przed rozpakowaniem.
Tak więc pliki i foldery znajdujące się w plikach pomocy są kopiowane do folderu Dokumenty z wyświetlaniem postępu.
Tym razem wyjście jest nieco inne.
Nie dostajemy ETA. Pasek postępu wyświetla teraz ruchomy wskaźnik. Pokazuje, że proces jest aktywny, ale nie rośnie od lewej do prawej jak tradycyjny pasek postępu. pv
ogranicza się do wyświetlania informacji, które może wyodrębnić z procesu, który jest przesyłany potokiem.
Używanie pv i smoły do tworzenia archiwum
Kopiowanie plików z pv
i tar
nie pozostawia nam pliku archiwum. Rodzaj „wirtualnego” archiwum jest tworzony przez tar
, który jest wprowadzany z powrotem do tar
, aby wyodrębnić pliki. Jeśli naszym celem jest kopiowanie plików, to się udało. Ale co, jeśli chcemy stworzyć plik archiwum?
Nadal możemy użyć tar
do utworzenia pliku archiwum i uzyskania raportu o postępach z pv
. Opcje używane z tar
to -c
(utwórz archiwum), -z
(skompresuj za pomocą gzip) i -f
(nazwa pliku archiwum).
Zauważ, że używamy -
jako nazwy pliku, co powoduje, że tar
używa stdout i zapisuje swoje dane wyjściowe w oknie terminala. Nie widzimy tego wyjścia, ponieważ jest on przesyłany przez pv
.
Rzeczywista nazwa archiwum będzie nazwą pliku, do którego przesyłamy dane wyjściowe z pv
. W tym przypadku jest to „help-files.tgz”.
tar -czf - ./help-files/ | pv > pliki-pomocy.tgz
Otrzymujemy te same wskaźniki postępu, co poprzednio, a plik archiwum tworzony jest dla nas.
POWIĄZANE: Jak kompresować i wyodrębniać pliki za pomocą polecenia tar w systemie Linux
Opcje wyświetlania pv
Istnieje wiele opcji, których możesz użyć z pv
, aby zmienić szczegóły raportu.
Jeśli użyjesz którejkolwiek z tych opcji, wszystkie pozostałe opcje zostaną wyłączone. Jeśli więc chcesz mieć w użyciu trzy opcje wyświetlania, musisz określić te trzy opcje.
Używanie pv
bez żadnych opcji jest tym samym, co używanie opcji -pterb
.
- -p : wyświetla procent wykonania. To jest pasek postępu i procent ukończenia.
- -t : wyświetla czas, który upłynął .
- -e : wyświetl ETA .
- -r : wyświetla szybkość przesyłania danych.
- -b : wyświetla liczbę bajtów (dane przesyłane do tej pory).
- -n : wyświetla procent jako liczbę całkowitą . Drukuje procent ukończenia jako liczbę całkowitą, z każdą nową aktualizacją w nowym wierszu.
Powtórzmy ostatnie polecenie i przekażmy opcję -p
(procent ukończenia) do pv
.
tar -czf - ./help-files/ | pv - p > pliki-pomocy.tgz
Spowoduje to wyłączenie wszystkich innych opcji wyświetlania. pv
podaje tylko procent ukończenia elementu.
Ponieważ pv
nie otrzymuje procentu ukończenia z tar
, pasek postępu zostaje zastąpiony ruchomym wskaźnikiem. Nie ma wartości procentowej.
Korzystanie z pv Z wc
Możemy użyć pv
do potoku pliku tekstowego (lub plików) do wc
. wc
policzy wtedy powrót karetki, znaki i słowa, a pv
da nam raport o postępach.
Tutaj przesyłamy wszystkie pliki „.page” z katalogu help-files do wc
.
Po zakończeniu wc
możemy zobaczyć naszą liczbę powrotu karetki (linii), znaków i słów ze wszystkich plików „.page” w folderze plików pomocy.
Instalowanie postępu polecenia
Polecenie progress
daje ten sam rodzaj przydatnych informacji co pv
, ale działa z określonym zestawem poleceń systemu Linux.
Aby zainstalować progress
w Ubuntu, użyj tego polecenia:
postęp instalacji sudo apt-get
Aby zainstalować progress
w Fedorze, użyj tego polecenia:
postęp instalacji sudo dnf
Aby zainstalować progress
w Manjaro, użyj tego polecenia:
sudo pacman - postęp Syu
Postęp poleceń Współpracuje z
Wpisanie progress
w oknie terminala i naciśnięcie klawisza Enter spowoduje wyświetlenie listy poleceń, z którymi działa progress
.
postęp
Korzystanie z postępu z rurami
Istnieją dwie techniki, których możemy użyć do monitorowania progress
poleceń. Pierwszym z nich jest użycie rur.
Polecenie tar
znajduje się na liście obsługiwanych poleceń, które progress
może monitorować, więc użyjmy tar
.
Opcje, których użyjemy, to standardowe opcje -c
(utwórz archiwum), -z
(skompresuj za pomocą gzip) i -f
(nazwa pliku). Utworzymy skompresowane archiwum wszystkiego, co znajduje się w folderze plików pomocy, a archiwum będzie się nazywać „help.tgz”.
Wprowadzamy to do progress
i używamy opcji -m
(monitor), aby progress
raportował proces, dopóki się nie zakończy.
tar -czf help.tgz ./help-files/ | postęp -m
Okno terminala pokaże postęp polecenia tar
podczas tworzenia archiwum.
Gdy każdy plik jest przetwarzany, jest on wyświetlany z następującymi informacjami:
- Identyfikator procesu.
- Nazwa procesu.
- Procent ukończonych.
- Przetwarzane dane i całkowity rozmiar pliku.
- Szybkość transmisji danych (przepustowość).
- Szacowany pozostały czas (ETA).
Możesz być zaskoczony, gdy pojawi się drugi zestaw danych. Ten pierwszy zestaw danych dotyczy tar
. Drugi dotyczy gzip
. tar
wywołuje gzip
w celu wykonania kompresji. Ponieważ gzip
znajduje się na liście obsługiwanych poleceń, raporty z jego progress
.
Korzystanie z postępu w trybie ciągłego monitorowania
Możesz użyć progress
w trybie ciągłego monitorowania w czasie rzeczywistym, używając opcji -M (monitor).
Wpisz następujące polecenie w oknie terminala:
postęp -M
progress
zgłosi, że nie ma uruchomionych poleceń do monitorowania. Ale nie wracasz do wiersza poleceń. progress
czeka, aż uruchomi się polecenie, które może monitorować. Następnie automatycznie rozpocznie raportowanie na ten temat.
W innym oknie terminala wpisz polecenie znajdujące się na liście poleceń, których postęp może monitorować.
Użyjemy cat
. Polecenia, które kończą się zbyt szybko, nie zostaną zarejestrowane w progress
, więc wymienimy zawartość bardzo długiego pliku tekstowego.
kot słowa.strona
W oknie terminala z progress
zobaczysz statystyki polecenia cat
podczas jego wykonywania i pracy w kierunku zakończenia.
Gdy cat
zakończy wyświetlanie, progress
pliku wraca do stanu oczekiwania.
Za każdym razem, gdy jedno z poleceń, które może raportować, wykonuje duże zadanie, progress
automatycznie je monitoruje i raportuje.
To całkiem fajne.
Ukończono w 100%
Pozbądź się zgadywania z zastanawiania się, jak radzi sobie długo działające polecenie, i zrób sobie przerwę od kontemplowania kursora z pv
i progress
.
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów