GNU/Linux >> Belajar Linux >  >> Linux

Perkirakan Waktu Atau Pekerjaan Yang Tersisa Untuk Selesai Untuk Rsync?

Saat menjalankan rsync pada direktori dengan banyak file dan direktori di berbagai level, dapatkah kami memperkirakan jumlah pekerjaan atau waktu untuk menyelesaikannya?

  • opsi progres hanya menunjukkan progres transfer satu file, bukan progres transfer semua file dan direktori di bawah direktori sumber.

  • Salah satu cara yang saya kira adalah dengan melihat direktori apa yang telah
    ditransfer sejauh ini, dan membandingkannya dengan sumbernya.

    Akan sangat membantu jika saya mengetahui urutan file dan direktori di
    yang rsync mentransfernya.

    Saya kira itu mungkin terkait dengan rsync itu menjalankan banyak utas dan apa yang dilakukan setiap utas?

    Saya tidak yakin urutan apa yang dipilihnya, dan tebakan saya sebelumnya tentang urutan pertama roti sepertinya tidak benar (jadi saya coret).

Jawaban yang Diterima:

Anda dapat membuat rsync cetak satu baris per file menggunakan -i dan kemudian gunakan pv -l untuk melaporkan kemajuan berdasarkan jumlah baris (pada dasarnya jumlah file).

Anda membutuhkan pv (penampil pipa):http://www.ivarch.com/programs/pv.shtml

rsync -ai sourcedir/ targetdir/ | pv -l -s filecount > logfile

Gunakan perintah berikut untuk mendapatkan jumlah file:

find sourcedir | wc -l

Catatan:perintah ini akan menampilkan informasi kemajuan berdasarkan jumlah file yang disalin. Ini bekerja paling baik jika ada banyak file bertubuh kecil. Jika hanya ada beberapa file yang berukuran besar, Anda tidak akan bersenang-senang.

Untuk melihat kemajuan saat Anda memperbarui (atau membandingkan) salinan yang ada:

(informasi lebih lanjut:Bandingkan direktori tetapi bukan konten file)

rsync -aii --delete sourcedir/ targetdir/ | pv -l -s filecount > logfile

-i kedua membuat rsync mencetak satu baris per file meskipun keduanya sama.

Tambahkan -n untuk membandingkan (bukan menyalin atau menghapus apa pun).

Tinggalkan --delete sesuai kebutuhan.

Perintah ini akan mencetak ke layar secara real time file yang berbeda:

rsync -aii --delete sourcedir/ targetdir/ | pv -l -s filecount | 
    tee logfile | grep -v "^."

Perintah di atas berfungsi paling baik ketika ada banyak file bertubuh kecil. Jika Anda memiliki beberapa file berukuran besar, maka beberapa laporan kemajuan bawaan rsync mungkin bisa lebih membantu. Lihat halaman manual rsync untuk -P atau --progress atau --info=progress2 . Namun berhati-hatilah:opsi ini tidak akan berfungsi dengan baik dengan pv . Atau setidaknya saya belum tahu caranya.

Terkait:Perlu pembatasan tab jQuery aktif satu tab pada satu waktu status menggunakan pengontrol mvc5?

Berikut adalah solusi kasar untuk melihat kemajuan berdasarkan ukuran:

  • perhatikan ruang kosong dari partisi target sebelum menyalin menggunakan df -h .
  • perhatikan ukuran direktori sumber menggunakan du -sh .
  • gunakan watch df -h dan lihat ukurannya bertambah.

Jelas ini hanya berfungsi saat menyalin dan tidak saat memperbarui atau membandingkan.


Linux
  1. Hapus File Yang Belum Diakses Untuk Waktu Yang Diberikan Di Linux

  2. File Pseudo Untuk Data Sementara?

  3. Bagaimana Cara Selektif Membungkam Rsync?

  1. Cadangkan file Anda dengan rsync

  2. folder gabungan linux:rsync?

  3. Mengapa find -mtime tidak berfungsi seperti yang diharapkan pada file dengan zona waktu berbeda?

  1. Setel Umask Untuk Sistem File yang dipasang di Sshfs?

  2. Bagaimana Mengenalinya Rsync Untuk Mempertahankan Cap Waktu Pada File Ketika Pohon Sumber Memiliki Titik Terpasang?

  3. Apakah ada alasan lain untuk tidak ada ruang tersisa di perangkat?