GNU/Linux >> Znalost Linux >  >> Linux

Jak monitorovat průběh dat prostřednictvím potrubí pomocí příkazu „pv“.

Představte si tento scénář. Pokoušíte se zkopírovat velký soubor z jednoho adresáře do druhého nebo z jednoho systému do druhého pomocí příkazového řádku. Jak pravděpodobně víte, neuvidíte žádný náznak úlohy kopírování, pokud používáte příkaz 'cp'. Uvidíte pouze prázdnou obrazovku. Dokud nebude proces kopírování dokončen, nemůžete si být jisti, zda proces kopírování probíhá nebo ne. V takových případech můžete použít pv příkaz pro sledování průběhu dat. Pv, zkratka p ipe v iewer, příkaz umožňuje uživateli vidět průběh dat prostřednictvím kanálu poskytnutím následujících informací:

  • celkový uplynulý čas,
  • procento dokončení (s ukazatelem průběhu),
  • aktuální propustnost,
  • celkový počet přenesených dat,
  • a odhadovaný čas příjezdu.

V tomto krátkém tutoriálu uvidíme, jak a kde použít příkaz pv ke sledování průběhu dat v systémech podobných Unixu.

Stáhnout - Zdarma Cheat Sheet:"Linux Command Line Cheat Sheet"

Nainstalujte pv v Linuxu

Většina moderních distribucí Linuxu je dodávána s předinstalovaným příkazem pv. Pro případ, že ještě není nainstalován, můžete jej nainstalovat spuštěním následujícího příkazu z vašeho terminálu v závislosti na distribuci Linuxu, kterou používáte.

Na Arch Linux, Antergos, Manjaro Linux:

$ sudo pacman -S pv

Na RHEL, CentOS, Fedora:

$ sudo yum install pv

Nebo,

$ sudo dnf install pv

V systémech Debian, Linux Mint, Ubuntu:

$ sudo apt-get install pv

Na SUSE otevřeteSUSE:

$ sudo zypper in pv

Nyní jsme nainstalovali pv. Dovolte mi ukázat vám několik příkladů.

Sledování průběhu dat v potrubí pomocí příkazu 'pv'

Podívejte se na výstup následujícího příkazu:

$ cp CentOS7.iso Downloads/

příkaz cp

Tento příkaz zkopíruje obraz ISO CentOS 7 do složky Stahování adresář v mém místním systému. Jak vidíte na výše uvedeném výstupu, nezobrazuje žádný ukazatel průběhu. Uvidíte pouze blikající kurzor. Nevíme, jak dlouho bude proces kopírování trvat. To může být někdy nepříjemné, protože nevidíme žádné známky toho, kdy bude tento příkaz dokončen. Zde přichází na pomoc příkaz pv. Příkaz pv vám ukáže průběh příkazů Linuxu a ukáže vám, kdy bude příkaz Linux dokončen. Takže můžete opustit terminál a udělat nějaké jiné úkoly a vrátit se, až bude úkol hotový.

Nyní udělejme totéž s prohlížečem potrubí (pv) a podívejme se, jaký je výstup.

$ pv CentOS7.iso > Downloads/centos.iso

Monitorujte průběh dat prostřednictvím potrubí pomocí příkazu 'pv'

Vidíš, chápeš ten rozdíl? Jak jsem řekl, příkaz pv zobrazuje celkový uplynulý čas, procento dokončení (s ukazatelem průběhu), aktuální rychlost propustnosti, celkový počet přenesených dat a ETA.

Dovolte mi uvést několik dalších příkladů.

Rychlost přenosu dat můžeme omezit pomocí -L přepněte podle níže uvedeného příkladu.

$ pv -L 2m CentOS7.iso > Downloads/centos.iso

Výše uvedený příkaz omezí rychlost přenosu dat na 2 MB za sekundu . Podívejte se na následující výstup.

Omezte rychlost přenosu dat pomocí příkazu pv

Pokud máte více souborů nebo adresářů, můžete použít pv s příkazem tar jak je uvedeno níže:

$ tar c Notebooks/ | pv | tar x -C Documents/

Výše uvedený příkaz zkomprimuje adresář Notebooks a zkopíruje jej do adresáře Documents a nakonec extrahuje obsah.

Zde je další příklad. Tento příkaz vytvoří archiv souboru CentOS7.iso a uložte jej do aktuálního pracovního adresáře.

$ pv CentOS7.iso | zip > centos.zip

vytvořte archivní soubor pomocí příkazu pv

Můžete také použít pv s příkazem dd pro kopírování souborů mezi adresáři, jak je uvedeno níže. Tento příkaz zkopíruje soubor CentOS7.iso z aktuálního adresáře do adresáře Downloads.

$ dd if=CentOS7.iso | pv | dd of=Downloads/centos7.iso

použijte příkaz pv s příkazem dd ke kopírování souborů mezi adresáři

Dalším užitečným příkazem pro zobrazení průběhu dat je dialog . Můžeme jej použít spolu s příkazem pv k zobrazení průběhu dat, jak je uvedeno níže.

$ tar -czf - Official/ | (pv -n > mybackup.tgz) 2>&1 | dialog --gauge "Compressing files, please wait..." 10 70 0

Ukázkový výstup:

použijte příkaz dialog s příkazem pv k zobrazení průběhu dat

Další podrobnosti naleznete na manuálových stránkách.

$ man pv

Podívejte se také na naši předchozí příručku k rychlému přenosu velkých souborů mezi dvěma vzdálenými systémy přes síť pomocí netcattar , a pv příkazy v operačních systémech Linux a Unix.

  • Jak rychle přenášet velké soubory přes síť v Linuxu a Unixu

Aktualizace:

Ukazatel průběhu pro příkazy "cp" a "mv" lze snadno přidat pomocí opravy s názvem "Advanced Copy" . Podrobnosti naleznete na následujícím odkazu.

  • Pokročilé kopírování – přidání ukazatele průběhu do příkazů cp a mv v systému Linux

Linux
  1. Jak vytvořit databázi v MySQL pomocí příkazového řádku

  2. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku

  3. Jak odebrat uživatele v Linuxu pomocí příkazového řádku

  1. Jak používat příkaz basename?

  2. Jak komprimovat a extrahovat soubory pomocí příkazu tar v systému Linux?

  3. Jak připojit vzdálený hostitel pomocí příkazu ssh

  1. Jak získat počet souborů v adresáři pomocí příkazového řádku?

  2. Jak zkontrolovat, zda je potrubí prázdné, a spustit příkaz na datech, pokud není?

  3. Jak zakázat Ctrl+c nebo Ctrl+z pomocí příkazu „trap“ v Linuxu