Linux Komutlarının İlerlemesi Nasıl İzlenir (pv ve ilerleme ile)

Yayınlanan: 2022-01-29
Bir dizüstü bilgisayarda Linux terminal istemi
Fatmawati Achmad Zaenuri/Shutterstock.com

Kör uçmak yerine, bir komutun ilerlemesini izlemek için Linux pv ve progress komutlarını kullanın. Bu yardımcı programlar, normalde sahip olmayan komutlar için size ilerleme çubukları verecektir. Tamamlanana kadar tahmini bir süre de göreceksiniz.

Koltuk arkalarında video ekranı olmayan bir uçakta uzun mesafeli bir uçuştaysanız, yolculuğunuz boyunca ne kadar uzakta olduğunuzu bilmek kolay değildir. Ne zaman yola çıktığını biliyorsun. Uçağın ne kadar süreceğini biliyorsun. Ama doğru yolda, zamanında veya programın çok gerisinde olup olmadığınızı nasıl anlarsınız? Uçuş sırasındaki filmi izlemek istemiyorsanız, genellikle video ekranınızı, üzerinde uçağınızın konumunun bulunduğu bir harita gösterecek şekilde değiştirebilirsiniz. Ayrıca, harika bir tahmini varış zamanı (ETA) gibi bazı istatistikler de alırsınız.

Terminal penceresinden komut başlatmak bazen video ekranı olmayan uzun mesafeli bir uçuş gibi gelebilir. Her şey yolunda mı, süreç mi askıda kaldıysa, ne kadar yakınsa, herhangi bir belirti verecek hiçbir şeyiniz yok. Yanıp sönen bir imleç çok bilgilendirici değildir.

pv ve progress komutları size bazı istatistikler ve biraz görsel geri bildirim sağlar. İşlemin ne kadar yakın olduğunu görebilirsiniz. Bu, çalışan işlemleriniz için bir ETA alacağınız anlamına gelir. Bir imlece bakmakla karşılaştırıldığında, bu kesinlikle kazanır.

pv yükleme

pv yüklemeniz gerekir.

Ubuntu'ya pv yüklemek için şu komutu kullanın:

 sudo apt-get install pv 

pv yüklemek için şu komutu kullanın:

 sudo dnf kurulum pv 

Manjaro'ya pv yüklemek için şu komutu kullanın:

 sudo pacman -Syu pv 

pv kullanma

pv , boru görüntüleyici anlamına gelir. Boruların bir yerde komuta dahil olması gerekiyor. ISO'nun sıkıştırılmış bir zip dosyasını oluşturmak için bir ISO görüntüsünü zip yoluyla aktardığımız bir örnek.

Reklamcılık

Komutları ekran görüntüsü alınabilecek kadar yavaşlatmak için, bu makale için kullanılan örneklerdeki bazı dosyalar SILVERXHD adlı eski, yavaş, harici bir USB'de depolandı.

 pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip 

pv bize verdiği bilgiler ekranın alt satırında görülebilir.

Soldan sağa, görüntülenen bilgiler:

  • Şimdiye kadar aktarılan veriler.
  • Aradan zaman geçti.
  • Veri aktarım hızı (iş hacmi).
  • Bir ilerleme çubuğu ve tamamlanmış bir yüzde rakamı.
  • Tamamlanmadan önce kalan tahmini süre (ETA).

pv ile dosya kopyalama

pv çıktısı olan bir dosyayı kopyalamak için şu komutu kullanın:

 pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso 

Dosya kopyalanırken bir ilerleme raporu alıyoruz.

te terminal penceresinde bir dosyayı pv ile kopyalama

pv ile birden fazla dosya kopyalama

Birden fazla dosya ve klasörü pv ile kopyalamak için küçük bir numara kullanmamız gerekiyor. Dosyaları bizim için taşımak için tar kullanıyoruz.

 tar -c yardım dosyaları/ | pv | tar -x -C Belgeleri/ 

Reklamcılık

Komutun tar tar -c help-files/ bölümü tar'a help-files klasöründeki dosyaların bir arşivini ( -c ) oluşturmasını söyler. Bu, ilerlemenin bir görüntüsünü alabilmemiz için pv aracılığıyla iletilir. Daha sonra komutun son kısmı için tar geri gönderilir. Arşiv çıkartılır ( -x ) ve dizin çıkartılmadan önce Documents olarak değiştirilir ( -C ).

Böylece, yardım dosyalarındaki dosya ve klasörler, ilerleme göstergesiyle birlikte Belgeler klasörüne kopyalanır.

Çıktı bu sefer biraz farklı.

ETA alamıyoruz. İlerleme çubuğu artık hareketli bir gösterge görüntüler. Sürecin aktif olduğunu gösterir, ancak geleneksel bir ilerleme çubuğu gibi soldan sağa doğru büyümez. pv , iletilen süreçten çıkarabileceği bilgileri görüntülemekle sınırlıdır.

Arşiv Oluşturmak için pv ve tar kullanma

Dosyaları pv ve tar ile kopyalamak bize arşiv dosyası bırakmaz. tar tar beslenen bir tür "sanal" arşiv oluşturur. Amacımız dosyaları kopyalamaksa, bu başarılmıştır. Peki ya bir arşiv dosyası oluşturmak istiyorsak?

Bir arşiv dosyası oluşturmak ve pv bir ilerleme raporu almak için tar hala kullanabiliriz. tar ile kullanılan seçenekler şunlardır: -c (arşiv oluştur), -z (gzip ile sıkıştır) ve -f (arşiv dosya adı).

Dosya adı olarak - kullandığımızı unutmayın, bu da tar stdout kullanmasına ve çıktısını terminal penceresine yazmasına neden olur. Bu çıktıyı görmüyoruz çünkü pv aracılığıyla iletiliyor.

Reklamcılık

Arşivin gerçek adı, çıktıyı pv aktardığımız dosya adı olacaktır. Bu durumda, “help-files.tgz” dir.

 tar -czf - ./help-files/ | pv > help-files.tgz 

Daha önce olduğu gibi aynı ilerleme göstergelerini alıyoruz ve bizim için arşiv dosyası oluşturuldu.

İLGİLİ: Linux'ta tar Komutunu Kullanarak Dosyaları Sıkıştırma ve Çıkarma

pv Görüntüleme Seçenekleri

Raporunun ayrıntılarını değiştirmek için pv ile kullanabileceğiniz birkaç seçenek vardır.

Bu seçeneklerden herhangi birini kullanırsanız, diğer seçeneklerin tümü kapatılır. Bu nedenle, kullanımda üç görüntüleme seçeneği olmasını istiyorsanız, o zaman bu üç seçeneği belirtmeniz gerekir.

pv herhangi bir seçenek olmadan kullanmak, -pterb seçeneklerini kullanmakla aynıdır.

  • -p : tamamlanma yüzdesini görüntüler. Bu, ilerleme çubuğu ve tamamlanan yüzde rakamıdır.
  • -t : geçen süreyi gösterir .
  • -e : ETA'yı görüntüler.
  • -r : veri aktarım hızını görüntüler.
  • -b : bayt sayısını görüntüler (şimdiye kadar aktarılan veriler).
  • -n : yüzdeyi tam sayı olarak görüntüler . Bu, tamamlanan yüzdeyi her yeni güncellemeyle yeni bir satırda tamsayı olarak yazdırır.

Son komutu tekrarlayalım ve -p (tamamlanan yüzde) seçeneğini pv geçirelim.

 tar -czf - ./help-files/ | pv - p > help-files.tgz 

Reklamcılık

Bu, diğer tüm görüntüleme seçeneklerini kapatır. pv yalnızca tamamlanmış öğe yüzdesini sağlar.

pv tar tamamlanmış bir yüzde yüzdesi almadığından, ilerleme çubuğu hareketli bir göstergeyle değiştirilir. Yüzde rakamı yok.

wc ile pv kullanma

Bir metin dosyasını (veya dosyaları) wc aktarmak için pv kullanabiliriz. wc daha sonra satır başlarını, karakterleri ve kelimeleri sayacak ve pv bize bir ilerleme raporu verecektir.

Burada help-files dizinindeki tüm “.page” dosyalarını wc içine aktarıyoruz.

wc tamamlandığında, help-files klasöründeki tüm “.page” dosyalarından satır başı (satır), karakter ve kelime sayımızı görebiliriz.

İlerleme Komutunu yükleme

progress komutu, pv ile aynı türden yararlı bilgiler verir, ancak belirli bir Linux komutları kümesiyle çalışır.

Ubuntu'da progress yüklemek için şu komutu kullanın:

 sudo apt-get yükleme ilerlemesi 

Fedora'da progress yüklemek için şu komutu kullanın:

 sudo dnf yükleme ilerlemesi 

sudo dnf bir terminal dulunda yükleme ilerlemesi

Manjaro'da progress yüklemek için şu komutu kullanın:

 sudo pacman -Syu ilerlemesi 

Komutlar ilerleme ile çalışır

Bir terminal penceresinde progress yazmak ve Enter tuşuna basmak, progress birlikte çalıştığı komutların bir listesini verecektir.

 ilerleme 

İlerlemeyi Borularla Kullanma

progress ile komutları izlemek için kullanabileceğimiz iki teknik vardır. Birincisi boru kullanmaktır.

tar komutu, progress izleyebileceği desteklenen komutlar listesindedir, bu yüzden tar kullanalım.

Kullanacağımız seçenekler standart -c (arşiv oluştur), -z (gzip ile sıkıştır) ve -f (dosya adı) seçenekleridir. Yardım dosyaları klasöründeki her şeyin sıkıştırılmış bir arşivini oluşturacağız ve arşivin adı “help.tgz” olacak.

Bunu progress aktarıyoruz ve -m (monitör) seçeneğini kullanıyoruz, böylece progress , tamamlanana kadar süreç hakkında rapor vermeye devam ediyor.

 tar -czf help.tgz ./help-files/ | ilerleme -m 

Terminal penceresi, arşivi oluştururken tar komutunun ilerlemesini gösterecektir.

Reklamcılık

Her dosya işlenirken aşağıdaki bilgilerle birlikte listelenir:

  • İşlem kimliği.
  • İşlem adı.
  • Yüzde tamamlandı.
  • İşlenen veriler ve dosyanın toplam boyutu.
  • Veri hızı (iş hacmi).
  • Tahmini kalan süre (ETA).

İkinci bir veri kümesinin ortaya çıktığını görmek sizi şaşırtabilir. Bu ilk veri seti tar içindir. İkincisi gzip içindir. tar , sıkıştırmayı gerçekleştirmek için gzip çağırır. gzip , desteklenen komutlar listesinde olduğundan, progress raporları buna ilişkindir.

İlerlemeyi Sürekli İzleme Modunda Kullanma

-M (monitör) seçeneğini kullanarak progress gerçek zamanlı sürekli izleme modunda kullanabilirsiniz.

Bir terminal penceresine aşağıdaki komutu yazın:

 ilerleme -M 

progress , izlemesi için çalışan hiçbir komut olmadığını bildirecektir. Ancak komut satırına döndürülmezsiniz. progress , izleyebileceği bir komut başlayana kadar bekler. Daha sonra otomatik olarak raporlamaya başlayacaktır.

Başka bir terminal penceresinde, ilerlemenin izleyebileceği komutlar listesinde bulunan bir komut yazın.

cat kullanacağız. Çok hızlı biten komutlar progress ile kaydedilmez, bu nedenle çok uzun bir metin dosyasının içeriğini listeleyeceğiz.

 kedi kelimeleri.sayfa 

Reklamcılık

İçinde progress olan terminal penceresinde, yürütülürken ve tamamlanmaya doğru çalışırken cat komutunun istatistiklerini göreceksiniz.

cat listelemeyi bitirdiğinde dosyanın progress bekleme durumuna döner.

Raporlayabildiği komutlardan biri büyük bir görev gerçekleştirdiğinde, progress otomatik olarak izleyecek ve raporlayacaktır.

Bu oldukça temiz.

%100 Tamamlandı

Uzun süredir devam eden bir komutun nasıl çalıştığını merak ederek tahmin yürütmeyi ortadan kaldırın ve imlecinizi pv ve progress ile düşünmeye ara verin.

İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar