Linux Komutlarının İlerlemesi Nasıl İzlenir (pv ve ilerleme ile)
Yayınlanan: 2022-01-29
 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.
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.

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/

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

 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

 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. 

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

 İç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. 
| Linux Komutları | ||
| Dosyalar | tar · pv · kedi · tac · chmod · grep · diff · sed · ar · adam · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · birleştirme · jq · katlama · uniq · dergictl · kuyruk · stat · ls · fstab · yankı · daha az · chgrp · chown · rev · bak · diziler · tür · yeniden adlandır · zip · unzip · mount · umount · yükle · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · yama · dönüştürmek · rclone · parçalamak · srm | |
| süreçler | takma ad · ekran · üst · güzel · renice · ilerleme · strace · systemd · tmux · chsh · geçmiş · at · toplu · ücretsiz · hangi · dmesg · chfn · usermod · ps · chroot · xargs · tty · pembemsi · lsof · vmstat · zaman aşımı · duvar · evet · öldür · uyku · sudo · su · zaman · groupadd · usermod · gruplar · lshw · kapatma · yeniden başlatma · durdurma · güç kapatma · passwd · lscpu · crontab · tarih · bg · fg | |
| ağ | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · kazmak · parmak · nmap · ftp · curl · wget · kim · whoami · w · iptables · ssh-keygen · ufw | 
İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar
