Cara Memantau Kemajuan Perintah Linux (Dengan pv dan kemajuan)
Diterbitkan: 2022-01-29 Alih-alih terbang buta, gunakan perintah pv
dan progress
Linux untuk melacak progres perintah. Utilitas ini akan memberi Anda bilah kemajuan untuk perintah yang biasanya tidak ada. Anda juga akan melihat perkiraan waktu hingga selesai.
Jika Anda melakukan penerbangan jarak jauh di pesawat tanpa layar video di sandaran kursi, tidak mudah untuk mengetahui seberapa jauh perjalanan Anda. Anda tahu kapan Anda lepas landas. Anda tahu berapa lama waktu yang dibutuhkan untuk penerbangan. Tapi bagaimana Anda tahu jika Anda berada di jalur, tepat waktu, atau jauh di belakang jadwal? Jika Anda tidak ingin menonton film dalam penerbangan, Anda biasanya dapat mengganti layar video untuk menampilkan peta dengan posisi pesawat Anda di atasnya. Anda juga mendapatkan beberapa statistik, seperti perkiraan waktu kedatangan (ETA), yang sangat bagus.
Memulai perintah dari jendela terminal terkadang terasa seperti penerbangan jarak jauh tanpa layar video. Anda tidak perlu memberikan indikasi apa pun jika semuanya baik-baik saja atau jika prosesnya macet, atau seberapa dekat dengan penyelesaiannya. Kursor yang berkedip tidak terlalu informatif.
Perintah pv
dan progress
memberi Anda beberapa statistik dan sedikit umpan balik visual. Anda dapat melihat seberapa dekat proses selesai. Itu berarti Anda mendapatkan ETA untuk proses yang sedang berjalan. Dibandingkan dengan menatap kursor, itu menang telak.
Menginstal pv
Anda harus menginstal pv
.
Untuk menginstal pv
di Ubuntu gunakan perintah ini:
sudo apt-get install pv
Untuk menginstal pv
di Fedora gunakan perintah ini:
sudo dnf instal pv
Untuk menginstal pv
di Manjaro gunakan perintah ini:
sudo pacman -Syu pv
Menggunakan pv
pv
adalah singkatan dari pipe viewer. Piping harus terlibat dalam perintah di suatu tempat. Berikut adalah contoh di mana kami menyalurkan gambar ISO melalui zip
untuk membuat file zip terkompresi dari ISO.
Untuk memperlambat perintah sehingga tangkapan layar dapat diambil, beberapa file dalam contoh yang digunakan untuk artikel ini disimpan di USB eksternal lama yang lambat bernama SILVERXHD.
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip
Informasi yang diberikan pv
kepada kita dapat dilihat di garis bawah layar.
Dari kiri ke kanan, informasi yang ditampilkan adalah:
- Data yang ditransfer sejauh ini.
- Waktu berlalu jauh.
- Kecepatan transfer data (throughput).
- Bilah kemajuan dan persentase angka yang diselesaikan.
- Perkiraan waktu tersisa sebelum selesai (ETA).
Menyalin File dengan pv
Untuk menyalin file dengan output dari pv
, gunakan perintah ini:
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso
Kami mendapatkan laporan kemajuan saat file disalin.
Menyalin Banyak File dengan pv
Untuk menyalin banyak file dan folder dengan pv
kita perlu menggunakan sedikit trik. Kami menggunakan tar
untuk memindahkan file untuk kami.
tar -c file bantuan/ | pv | tar -x -C Dokumen/
Bagian tar -c help-files/
dari perintah menginstruksikan tar
untuk membuat ( -c
) arsip file di folder file bantuan. Ini disalurkan melalui pv
sehingga kami mendapatkan tampilan kemajuan. Itu kemudian disalurkan kembali ke tar
untuk bagian terakhir dari perintah. Arsip diekstraksi ( -x
) dan direktori diubah ( -C
) menjadi Dokumen sebelum ekstraksi.
Jadi, file dan folder yang ada di file bantuan disalin ke folder Dokumen, dengan tampilan progres.
Outputnya kali ini sedikit berbeda.
Kami tidak mendapatkan ETA. Bilah kemajuan sekarang menampilkan indikator bergerak. Ini menunjukkan bahwa prosesnya aktif, tetapi tidak tumbuh dari kiri ke kanan seperti bilah kemajuan tradisional. pv
terbatas untuk menampilkan informasi yang dapat diekstraksi dari proses yang sedang disalurkan.
Menggunakan pv dan tar untuk Membuat Arsip
Menyalin file dengan pv
dan tar
tidak meninggalkan kita dengan file arsip. Semacam arsip "virtual" dibuat oleh tar
, yang langsung diumpankan kembali ke tar
untuk mengekstrak file. Jika tujuan kami adalah untuk menyalin file, itu tercapai. Tetapi bagaimana jika kita ingin membuat file arsip?
Kami masih dapat menggunakan tar
untuk membuat file arsip dan mendapatkan laporan kemajuan dari pv
. Opsi yang digunakan dengan tar
adalah -c
(buat arsip), -z
(kompres dengan gzip) dan -f
(nama file arsip).
Perhatikan bahwa kita menggunakan -
sebagai nama file, yang menyebabkan tar
menggunakan stdout, dan menulis outputnya ke jendela terminal. Kami tidak melihat output itu karena disalurkan melalui pv
.
Nama sebenarnya dari arsip akan menjadi nama file tempat kita menyalurkan output dari pv
. Dalam hal ini, ini adalah "help-files.tgz".
tar -czf - ./help-files/ | pv > file-bantuan.tgz
Kami mendapatkan indikator kemajuan yang sama seperti sebelumnya, dan file arsip dibuat untuk kami.
TERKAIT: Cara Mengompres dan Mengekstrak File Menggunakan Perintah tar di Linux
Opsi Tampilan pv
Ada sejumlah opsi yang dapat Anda gunakan dengan pv
untuk mengubah detail laporannya.
Jika Anda menggunakan salah satu opsi ini, semua opsi lainnya dimatikan. Jadi, jika Anda ingin menggunakan tiga opsi tampilan, Anda perlu menentukan ketiga opsi tersebut.
Menggunakan pv
tanpa opsi apa pun sama dengan menggunakan opsi -pterb
.
- -p : menampilkan persentase selesai. Ini adalah bilah kemajuan dan persentase angka yang diselesaikan.
- -t : menampilkan waktu yang telah berlalu.
- -e : menampilkan ETA .
- -r : menampilkan kecepatan transfer data.
- -b : menampilkan jumlah byte (data yang ditransfer sejauh ini).
- -n : menampilkan persentase sebagai bilangan bulat . Ini mencetak persentase yang diselesaikan sebagai angka integer, dengan setiap pembaruan baru pada baris baru.
Mari ulangi perintah terakhir dan berikan opsi -p
(persentase selesai) ke pv
.
tar -czf - ./help-files/ | pv - p > file bantuan.tgz
Ini mematikan semua opsi tampilan lainnya. pv
menyediakan persentase elemen yang diselesaikan saja.
Karena pv
tidak mendapatkan persentase angka yang diselesaikan dari tar
, bilah kemajuan diganti dengan indikator bergerak. Tidak ada angka persentase.
Menggunakan pv Dengan wc
Kita dapat menggunakan pv
untuk menyalurkan file teks (atau file) ke wc
. wc
kemudian akan menghitung carriage return, karakter, dan kata-kata dan pv
akan memberi kita laporan kemajuan.
Di sini kita menyalurkan semua file ".page" di direktori file bantuan ke wc
.
Ketika wc
selesai, kita dapat melihat jumlah carriage return (baris), karakter, dan kata dari semua file ".page" di folder file bantuan.
Menginstal Perintah kemajuan
Perintah progress
memberikan jenis informasi berguna yang sama seperti pv
, tetapi berfungsi dengan serangkaian perintah Linux tertentu.
Untuk menginstal progress
di Ubuntu, gunakan perintah ini:
Sudo apt-get install progres
Untuk menginstal progress
di Fedora, gunakan perintah ini:
Sudo dnf instal kemajuan
Untuk menginstal progress
di Manjaro, gunakan perintah ini:
sudo pacman -Syu kemajuan
Kemajuan Perintah Bekerja Dengan
Mengetik progress
di jendela terminal dan menekan Enter akan memberi Anda daftar perintah yang berfungsi dengan progress
.
kemajuan
Menggunakan Kemajuan Dengan Pipa
Ada dua teknik yang dapat kita gunakan untuk memantau perintah dengan progress
. Yang pertama adalah menggunakan pipa.
Perintah tar
ada dalam daftar perintah yang didukung yang dapat dipantau progress
, jadi mari gunakan tar
.
Opsi yang akan kita gunakan adalah opsi standar -c
(buat arsip), -z
(kompres dengan gzip) dan -f
(nama file). Kami akan membuat arsip terkompresi dari semua yang ada di folder file bantuan, dan arsip tersebut akan diberi nama "help.tgz".
Kami menyalurkannya ke progress
dan menggunakan opsi -m
(monitor) sehingga progress
terus melaporkan proses hingga selesai.
tar -czf help.tgz ./help-files/ | kemajuan -m
Jendela terminal akan menunjukkan kemajuan perintah tar
saat membuat arsip.
Saat setiap file diproses, itu terdaftar, dengan informasi berikut:
- ID proses.
- Nama proses.
- Persentase selesai.
- Data diproses dan ukuran total file.
- Kecepatan data (throughput).
- Perkiraan waktu yang tersisa (ETA).
Anda mungkin terkejut melihat kumpulan data kedua muncul. Kumpulan data pertama ini untuk tar
. Yang kedua adalah untuk gzip
. tar
memanggil gzip
untuk melakukan kompresi. Karena gzip
ada dalam daftar perintah yang didukung, laporan progress
.
Menggunakan Kemajuan dalam Mode Monitor Berkelanjutan
Anda dapat menggunakan progress
dalam mode monitor terus-menerus waktu nyata dengan menggunakan opsi -M (monitor).
Ketik perintah berikut di jendela terminal:
kemajuan -M
progress
akan melaporkan bahwa tidak ada perintah yang berjalan untuk dipantau. Tetapi Anda tidak dikembalikan ke baris perintah. progress
menunggu sampai perintah yang dapat dipantau dimulai. Kemudian secara otomatis akan mulai melaporkannya.
Di jendela terminal lain, ketikkan perintah yang ada di daftar perintah yang dapat dipantau kemajuannya.
Kita akan menggunakan cat
. Perintah yang berakhir terlalu cepat tidak akan didaftarkan dengan progress
, jadi kami akan mencantumkan konten file teks yang sangat panjang.
kata-kata kucing.page
Di jendela terminal dengan progress
di dalamnya, Anda akan melihat statistik untuk perintah cat
saat dijalankan dan bekerja menuju penyelesaian.
Ketika cat
selesai mendaftar, progress
file kembali ke status menunggu.
Setiap kali salah satu perintah yang dapat dilaporkan melakukan tugas yang cukup besar, progress
akan secara otomatis memantau dan melaporkannya.
Itu cukup rapi.
100% Selesai
Hilangkan tebakan dari bertanya-tanya bagaimana kinerja perintah yang berjalan lama, dan istirahatlah dari merenungkan kursor Anda dengan pv
dan progress
.
Perintah Linux | ||
File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · ketik · ganti nama · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konversi · rclone · rusak · srm | |
Proses | alias · layar · atas · bagus · renice · kemajuan · strace · systemd · tmux · chsh · sejarah · di · batch · gratis · yang · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · batas waktu · dinding · ya · bunuh · tidur · sudo · su · waktu · groupadd · usermod · grup · lshw · shutdown · reboot · hentikan · matikan · passwd · lscpu · crontab · tanggal · bg · fg | |
Jaringan | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
TERKAIT: Laptop Linux Terbaik untuk Pengembang dan Penggemar