Memahami output --info = progress2 dari rsync

72

Jika saya menjalankan rsyncdengan --info=progress2, saya mendapatkan output seperti

105.45M  13%  602.83kB/s    0:02:50 (xfr#495, ir-chk=1020/3825)

Tetapi apa arti angka tunggal? Saya belum menemukan entri yang cocok di halaman manual.

  • Angka pertama tampaknya adalah jumlah data yang diproses (byte yang disalin aktual dan byte yang dilewati, karena sudah ada di lokasi target), bukan? Tampaknya bukan jumlah data yang ditransfer, karena itu meningkat lebih cepat daripada koneksi internet saya ...
  • Apakah persentase mengacu pada jumlah data atau jumlah file yang akan disalin? Apakah ini mempertimbangkan file yang dikecualikan dan file yang sudah terbaru di lokasi target?
  • Waktu di posisi ketiga pertama tampaknya merupakan perkiraan waktu untuk penyelesaian, tetapi ketika saya mencobanya, ia melonjak antara beberapa jam dan beberapa detik. Apa yang dimaksud, dan bagaimana cara menghitungnya?
  • Apa arti dua angka terakhir?
muffel
sumber
1
Sudahkah Anda mencoba manhalaman ( PILIHAN > --progress)?
don_crissti
1
lihat unix.stackexchange.com/questions/231647/… di mana ia diselesaikan.
shirish

Jawaban:

90
105.45M 13% 602.83kB/s 0:02:50 (xfr#495, ir-chk=1020/3825)

Maksudnya:

  • Penerima / tujuan sejauh ini telah merekonstruksi 105,45 megabita (atau 13% ) dari sekitar 811,15 megabita (100%) dari file pengirim / sumber.
  • File-file ini sedang direkonstruksi dengan kecepatan 602,83 kilobyte per detik dan operasi transfer data ini sejauh ini memakan waktu 2 menit dan 50 detik (waktu berlalu).

Juga, xfr # 495 berarti bahwa saat ini file ke-495 sedang ditransfer, sementara ir-chk = 1020/3825 menunjukkan bahwa, dari total (sejauh ini) 3825 file dipindai secara rekursif (terdeteksi), sejauh ini 1020 dari mereka masih untuk diperiksa / diverifikasi.

Ini berarti bahwa jika pemindaian mendeteksi misalnya lebih dari 100 file yang akan diperiksa, kedua belah pihak akan bertambah 100 (kemudian akan dibaca ir-chk = 1120/3925 ). Setelah semua file telah dipindai (terdeteksi oleh pemindaian rekursi tambahan), jumlah di sisi kanan garis miring akan tetap sama hingga akhir seluruh proses, sedangkan yang di sisi kiri garis miring akan mulai berkurang karena semakin banyak file diperiksa (diverifikasi). Selain itu, karena akhir rekursi, ir-chk akan berubah ke-chk, menunjukkan bahwa pemindaian rekursi tambahan telah berakhir melakukan pemeriksaannya (operasi pendeteksian file). Namun, karena file akan terus diperiksa / diverifikasi sampai semuanya selesai, jumlah file yang belum diperiksa / diverifikasi (sisi kiri slash) akan berkurang hingga angka tersebut menjadi nol (menunjukkan akhir dari proses verifikasi file) .

Biarkan N menjadi jumlah total aktual file yang akan diperiksa / diverifikasi, ketika seluruh proses berakhir Anda akan melihat:

to-chk=0/N

... artinya tidak ada file yang tersisa untuk diperiksa / diverifikasi, dari total N file yang terdeteksi oleh pemindaian rekursi tambahan.

Tentang ir-chk (dari halaman manual rsync):

Dalam pemindaian rekursi tambahan, rsync tidak akan mengetahui jumlah total file dalam daftar file hingga mencapai akhir pemindaian, tetapi karena mulai mentransfer file selama pemindaian, rsync akan menampilkan baris dengan teks " ir-chk "(untuk pemeriksaan rekursi tambahan) alih-alih" to-chk "hingga titik yang mengetahui ukuran penuh daftar, pada titik mana ia akan beralih menggunakan" to-chk ". Dengan demikian, melihat "ir-chk" memberi tahu Anda bahwa jumlah total file dalam daftar file masih akan meningkat (dan setiap kali melakukannya, jumlah file yang tersisa untuk diperiksa akan meningkat dengan jumlah file yang ditambahkan ke Daftar).

Yuri Sucupira
sumber
4
Koreksi kecil: 2:50 bukan ETA - sudah waktunya berlalu sejauh ini.
menyelinap
4
@YuriSucupira Tanggapan saya adalah komentar itu. Saya cenderung selalu menggunakan --no-inc-recursive, tapi bukan itu yang saya bicarakan. Waktu ETA progress2didasarkan pada total (diketahui) data dan waktu yang berlalu; itu bukan per-file (tetapi tidak mengedipkan nilai file-tunggal-waktu-berlalu untuk centang pada penyelesaian file tunggal). Ada bug yang melibatkan ini pada satu titik yang akan membuat ini kurang jelas, meskipun saya tidak yakin apa versi itu
Izkata
2
@Izkata Saya ingat pengujian rsync pada saat itu (17 Juli 2016), sebelum membuat pernyataan apa pun di sini, hanya untuk memastikan bahwa ETA adalah per-file, bukan global, dan saya kemudian "secara visual diyakinkan" bahwa itu adalah per -file ETA. Saya menggunakan XUbuntu 14.04 (tidak ingat versi rsync itu). Bagaimanapun, saya menginstal XUbuntu 16.04 (ia datang dengan rsync 3.1.1-3ubuntu1) beberapa bulan yang lalu dan saya dapat (secara visual) mengkonfirmasi bahwa rsync -a --info=progress2 /src /destsebenarnya memberi saya total waktu yang telah berlalu berganti-ganti dengan ETA global , bukan ETA per-file. Itu aneh dan baru bagi saya, tetapi Anda benar.
Yuri Sucupira
4
@wingedsubmariner Saat sedang menyalin file - katakanlah, file1-, rsync menunjukkan kepada Anda ETA global (saat ini) untuk seluruh proses penyalinan. Kemudian, ketika selesai menyalin file1, rsync menunjukkan kepada Anda waktu global berlalu saat ini, dan kemudian mulai menyalin file berikutnya - katakan, file2-, sehingga menunjukkan kepada Anda (saat ini) ETA global lagi, sampai proses penyalinan file2berakhir dan kemudian rsync berisi total waktu berlalu yang baru (bertambah). Inilah mengapa Anda melihat "lompatan" itu: itu karena Anda melihat ETA global (total) yang menurun bergantian dengan meningkatnya waktu global (total) yang telah berlalu.
Yuri Sucupira
2
@ijoseph Yup, halaman manual hanya menyebutkan perilaku ETA. Itulah salah satu kemungkinan alasan mengapa banyak orang merasa bingung tentang perilaku UI selama proses rekonstruksi. Saya sendiri harus memperhatikan proses semacam itu untuk beberapa waktu sampai akhirnya saya bisa mengungkap "misterinya". :)
Yuri Sucupira