PV (Pipe Viewer) Aracı ile İki Komut Arasındaki Sürecin Detaylarını Görüntülemek.

Merhabalar

Boru görüntüleyici – PV (Pipe Viewer) bir boru hattı üzerinden veri akışını gözlemlemek için yazılmış terminal tabanlı bir araçtır. Görsel bir gösterge sayesinde ne kadar veri gönderiyor, ne kadar süre içerisinde tamamlandı gibi iki komutun arasındaki sürecin detaylarını gösteriyor.

PV aracını root yetkileriyle paket deponuzdan aşağıdaki komut yardımıyla sisteminize kurabilirsiniz.

root#: sudo apt-get install pv -y

Basit bir örnek ile başlamak gerekirse, aşağıdaki komutu kullanarak source adlı bir dosyayı sıkıştırıyorsunuz daha sonra pipe işaretini belirttikten sonra pv komutunu eklerseniz size sürecin detayları ile ilgili bilgi verecektir. Birinci komut bildiğiniz üzere bulunduğunuz dizin içerisinde boş bir dosya oluşturmanızı sağlar.

root#: touch source
root#: tar -cvf dosya.tar.gz source | pv
source  7B  00:00:19 [ 124kB/s] [ <====================> ]

Aynı örnek üzerine -p parametresini eklerseniz iki komutun arasındaki sürecin sadece ilerleme çubuğunu gösterecektir.

root#: tar -cvf dosya.tar.gz source | pv -p
source [ <==================> ]

Örneğin, herhangi bir komut kullandığınızı varsayalım bu komutun ne kadar süre içerisinde bittiğini öğrenmek isterseniz kullandığınız komutun sonuna pipe işaretini belirttikten sonra pv komutunun -t parametresini ekleyebilirsiniz. Gördüğünüz gibi 19 salise içerisinde bitmiş.)

root#: tar -cvf dosya.tar.gz source | pv -t
source  00:00:19

Komut satırında kullandığınız komutun normalde veri aktarım hızını göremezsiniz, veri aktarım hızını görmek isterseniz kullandığınız komutun sonunda pipe işaretini belirttikten sonra pv komutunun -r parametresini ekleyebilirsiniz.

root#: tar -cvf dosya.tar.gz source | pv -r
source [ 4,78kB/s]

Aşağıdaki komutun ne işe yaradığını açıklamak gerekirse, birinci komutu kullanarak içi boş bir dosya oluşturuyorsunuz ardından ikinci komutu yani pv komutu ile source.log adlı dosyasının içerisinde olmayan verileri yönlendirme yaparak /dev/null dizinine yolluyorsunuz ve iki komutun arasındaki sürecin detaylarını görüyorsunuz. Bildiğiniz üzere /dev/null dizini kendisine yönlendiren tüm veriyi okuyarak yok eden özel bir sistem sürücüsüdür. İsterseniz /dev/zero adlı dizini  /dev/null dizinine yönlendirme yaparak olmayan veriyi yok etmeye çalışabilirsiniz böylelikle pv aracının daha iyi görmüş olursunuz.)

root#: touch source.log
root#: pv /dev/null > source.log
2B 00:00:32 [ 2B/s] [ <==============> ]
veya
root# pv /dev/zero > /dev/null
69 GiB 0:01:19 [ 8.63Gib/s] [ <===========================> ]

Yukarıdaki birinci komutun aynısı sadece -b parametresini ekleyerek sürecin sadece bayt değerini görebilirsiniz.

root#: pv -b /dev/null > source.log

Komut satırında echo komutu ile terminal ekranına uzun bir isim yazdırıp sonuna pipe işaretini belirttikten sonra pv komutunun -qL 10 parametresini eklerseniz ekrana yazdırdığınız ismi 10 saniye içerisinde yavaş yavaş ekrana basacaktır.

root#: echo "Bilgi Güvenliği Akademisi" "bga" | pv -qL 10

PV komutunu ve parametrelerini birçok komut ile birlikte kullanabilirsiniz. Örneğin, kullandığınız komutun başına yada sonuna ekleyebilirsiniz. Aşağıdaki komut ile şunu demiş oluyoruz bulunduğumuz dizin altındaki dosyaları listele ardından sürecin detaylarını göster.

root#: ls | pv -tpreb
home  cdrom  dev  etc  home  initrd.img  lost+found  media  opt
root  sbin  selinux  srv sys  tmp  usr  var  vmlinuz  vmlinuz.old
172B 0:00:00  [ 145kB/s] [ <==================> ]

PV aracı ile ilgili parametreler aşağıdaki gibidir.

root#: pv --help
Usage: pv [OPTION] [FILE]...
Concatenate FILE(s), or standard input, to standard output,
with monitoring.
-p, --progress show progress bar
-t, --timer show elapsed time
-e, --eta show estimated time of arrival (completion)
-r, --rate show data transfer rate counter
-a, --average-rate show data transfer average rate counter
-b, --bytes show number of bytes transferred
-T, --buffer-percent show percentage of transfer buffer in use
-A, --last-written NUM show NUM bytes last written
-F, --format FORMAT set output format to FORMAT
-n, --numeric output percentages, not visual information
-q, --quiet do not output any transfer information at all
-W, --wait display nothing until first byte transferred
-s, --size SIZE set estimated data size to SIZE bytes
-l, --line-mode count lines instead of bytes
-0, --null lines are null-terminated
-i, --interval SEC update every SEC seconds
-w, --width WIDTH assume terminal is WIDTH characters wide
-H, --height HEIGHT assume terminal is HEIGHT rows high
-N, --name NAME prefix visual information with NAME
-f, --force output even if standard error is not a terminal
-c, --cursor use cursor positioning escape sequences
-L, --rate-limit RATE limit transfer to RATE bytes per second
-B, --buffer-size BYTES use a buffer size of BYTES
-C, --no-splice never use splice(), always use read/write
-E, --skip-errors skip read errors in input
-S, --stop-at-size stop after --size bytes have been transferred
-R, --remote PID update settings of process PID
-P, --pidfile FILE save process ID in FILE
-d, --watchfd PID[:FD] watch file FD opened by process PID
-h, --help show this help and exit
-V, --version show version information and exit
Tagged with: , , , , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

four × three =

Archives

Tweets