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