Bagaimana cara menggunakan Pipe Viewer (pv) untuk mengukur kemajuan kompresi?


1

Saya telah mencoba melacak kemajuan data dalam pipa, khususnya dalam skrip init besar untuk server minecraft. Bagaimana cara saya menggunakan pvuntuk mendapatkan pembacaan kemajuan yang akurat?

Saya sudah mencoba perintah berikut, di mana $WORLDBACKUPSIZEukuran folder yang akan dicadangkan, $pathadalah jalur yang harus dicadangkan, dan $MCPATH/${WORLDNAME[$INDEX]}folder yang harus dicadangkan, kecuali yang pvberhenti setengah jalan karena ukurannya menjadi ukuran folder dan hanya menghitung byte terkompresi yang melewati.

Saya ingin menghitung byte yang dikompres dalam perintah tar, jadi saya bisa menggunakan ukuran asli sebagai tanda akhir untuk meteran progres. Sederhananya, saya mencoba tar folder dan memantau kemajuan menggunakan pv. Ukuran total yang pvdigunakan untuk memberi tahu saya perkiraan persentase didasarkan pada ukuran asli, sedangkan ukuran yang diukur ketika perintah tar berjalan adalah ukuran terkompresi sehingga bilah kemajuan berhenti lebih awal dengan persentase selesai di akhir tergantung pada ukuran folder terkompresi dibandingkan dengan ukuran folder asli.

Perintah

WORLDBACKUPSIZE=`du -sk $WORLDSTORAGE/${WORLDNAME[$INDEX]} | cut -f 1`

digunakan untuk mengukur folder yang ingin saya buat cadangannya.

Perintah

tar -hcjf - $MCPATH/${WORLDNAME[$INDEX]} | pv -reps ${WORLDBACKUPSIZE}k > $path

digunakan untuk mengukur kemajuan. Bagaimana saya mengatur ulang ini sehingga saya mengukur kemajuan dengan jumlah byte yang dimasukkan ke perintah tar, dan bukan jumlah yang dikeluarkan?

Jawaban:


1

Anda bisa mulai dengan yang sederhana (tapi tidak terlalu bagus, dan mungkin Cat yang Tidak Berguna):

cat "$MCPATH/${WORLDNAME[$INDEX]}" \
| pv -reps "${WORLDBACKUPSIZE}k" \
| tar -hcjf - > $path/somename

Baris terakhir bisa saja tar -hcjf $path/somename, tetapi saya tetap dekat dengan aslinya, untuk menunjukkan bahwa saya pikir nama file mungkin hilang, kecuali "path" berisi path DAN nama file sudah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.