Perintah ROBOCOPY untuk melakukan cadangan tambahan

31

Saya kewalahan oleh dokumentasi ROBOCOPY. Saya ingin melakukan cadangan tambahan file lokal saya ke drive jaringan (M). Saya ingin itu berjalan secepat mungkin, tanpa file log dan dengan teks sesedikit mungkin ke layar. Semua file saya ada di suatu tempat di dalam satu folder (MyFolder) yang memiliki banyak subfolder bersarang. Yang saya maksud dengan "incremental" adalah "hanya menyalin apa yang baru atau diubah." Saya tidak ingin menghapus file historis apa pun di tujuan, tetapi jika saya telah mengubah file saya hanya ingin versi yang lebih baru. Dan jika saya belum mengubah file, maka saya tidak ingin menyalinnya di file cadangan yang ada. Apakah di bawah ini benar? (Menjalankan Win7 Enterprise.)

robocopy C:\MyFolder M:\MyFolder /z /np /xo /e

Tolong, tidak ada saran untuk apa pun selain robocopy. Saya tidak diizinkan menginstal apa pun. Dan saya tidak peduli dengan hal keamanan. Saya memiliki orang untuk itu (apakah saya menginginkannya atau tidak). ;-)

dmm
sumber
1
Anda memerlukan opsi / s atau / e untuk menyalin subdirektori.
David Marshall
@ Davidvidarshall: oops. Saya sebenarnya tahu itu. Ditambahkan. Jadi, apakah saya baik sekarang?
dmm
Iya nih. Saya telah menggunakan sesuatu yang serupa.
David Marshall
Mengujinya sekarang. Masih ada banyak hal yang ditulis ke layar. Bagaimana cara saya menyingkirkannya, di masa mendatang?
dmm
3
Salah satu opsi yang dapat membuat perbedaan kinerja yang besar adalah memiliki transfer multithreaded. /MT[:N] Saya memiliki CPU 4 inti jadi saya biasanya menggunakan sesuatu dalam kemarahan 8-16 untuk jumlah utas saya. Saya pikir 2-4 utas per inti. Anda tentu harus menguji dengan nilai yang berbeda pada perangkat keras Anda. Multithreaded paling membantu ketika Anda memiliki banyak file kecil. Jika Anda memiliki sedikit file besar, itu tidak akan banyak membantu.
Zoredache

Jawaban:

40

Saya telah berhasil menggunakan varian skrip berikut selama beberapa tahun sekarang:

robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL

Parameter menjelaskan

  • The /MIRpilihan (setara dengan /E /PURGE) singkatan dari "cermin" dan merupakan pilihan yang paling penting. Itu menganggap folder sumber Anda sebagai "master", menyebabkannya menimpa setiap perubahan di sisi target, yang merupakan pengaturan yang berguna untuk cadangan.

  • /FFTadalah opsi yang sangat penting, karena memungkinkan perbedaan 2 detik saat membandingkan cap waktu file, sehingga perbedaan jam kecil antara komputer Anda dan perangkat cadangan Anda tidak masalah. Ini akan memastikan bahwa hanya file yang dimodifikasi yang disalin, walaupun waktu modifikasi file tidak disinkronkan dengan tepat.

  • /R:3menentukan jumlah percobaan ulang, jika koneksi gagal, dan /W:10menentukan waktu tunggu 10 detik antara percobaan ulang. Ini adalah opsi yang berguna ketika melakukan pencadangan melalui jaringan.

  • /Z menyalin file dalam "mode restart", sehingga file yang disalin sebagian dapat dilanjutkan setelah gangguan.

  • /NPdan /NDLmenekan beberapa output debug, Anda juga dapat menambahkan /NS, /NC, /NFLuntuk mengurangi jumlah output (lihat dokumentasi untuk rincian). Namun, saya menyarankan untuk mencetak beberapa hasil debug selama proses pertama, untuk memastikan semuanya berfungsi seperti yang diharapkan.

Parameter berguna tambahan yang disebutkan oleh pengguna lain

  • /XJDmengecualikan "titik persimpangan" untuk direktori, tautan simbolik yang dapat menyebabkan masalah seperti loop tak terbatas selama pencadangan. Lihat komentar Brian untuk detailnya.

  • /MT[:N]menggunakan multithreading dan dapat mempercepat transfer banyak file kecil. Untuk N, nilai 2-4 kali jumlah core harus dilakukan pada mesin normal. Dikomentari oleh Zoredache pada pertanyaan awal.

Edit dalam menanggapi komentar Granger:

Jika Anda benar-benar ingin menyimpan file yang ada di tujuan, tetapi tidak di sisi sumber, cukup ganti /MIRopsi dengan /E. Namun, saya sangat menyarankan untuk menggunakan /MIRketika Anda ingin menggunakan tujuan untuk cadangan tambahan. Kalau tidak, file apa pun yang telah diganti nama atau dipindahkan di sumber akan mengacaukan tujuan, yang berarti Anda mendapatkan duplikat. Saya biasanya membuat subfolder "backup" pada tujuan yang berisi salinan 1: 1 pohon folder sumber saya. Dengan begitu Anda masih bisa menyimpan file-file historis di sebelah folder cadangan dan menghapus atau mengatur ulang mereka dengan aman nanti.

pederpansen
sumber
Apakah perintah ini memungkinkan untuk menyalin file dengan izin? robocopy C: \ sumber M: \ tujuan / MIR / FFT / R: 3 / W: 10 / Z / NP / NDL
Shabeer Sher
4
Kecuali / MIR (/ PURGE) akan menghapus file di tujuan yang tidak ada lagi di sumbernya. Pertanyaan yang diajukan secara eksplisit menyatakan bahwa itu tidak diinginkan.
Granger
@Shabeer Tidak, Robocopy secara default hanya menyalin data (D), atribut (A) dan cap waktu (T). Nilai-nilai lain harus ditentukan dengan parameter "/ copy: <value>", misalnya "/ copy: DATS" untuk menyertakan izin ACL. Tetapi karena saya menyalin ke NAS berbasis Linux, itu tidak masuk akal bagi saya.
pederpansen
1
@ Brian Terima kasih atas petunjuknya. Saya tidak pernah memiliki masalah dengan titik persimpangan, tetapi saya kira tidak ada salahnya untuk menghindarinya untuk berjaga-jaga. Menambahkannya dalam jawaban saya.
pederpansen
1
@pederpansen: Ini cenderung terjadi ketika menyalin folder pengguna (atau menyalin seluruh drive). Biasanya folder data aplikasi adalah penyebabnya, karena memiliki titik persimpangan untuk alasan kompatibilitas aplikasi. Coba jalankan "cd C: \ Users \ [USERFOLDER] \ AppData \ Local \ Data Aplikasi \ data aplikasi \ data aplikasi \" dari prompt perintah jika Anda ingin melihat contoh jalur tanpa batas. Ini bekerja bahkan pada Windows 10.
Brian
8

Saya suka menggunakan yang berikut ini:

robocopy "C:\Users\<user>" "F:\robocopy\<user>" /XJD /R:0 /XA:SH /E /ZB /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE

Saya menjalankan ini sebagai Administrator sehingga mode cadangan ( /bopsi) dapat membuat salinan file yang digunakan.

Pilihan lain yang tidak terkait dengan sifat tambahan cadangan adalah:

/XD untuk mengecualikan direktori dari cadangan.

/XJD untuk mengecualikan titik persimpangan ("My Music").

/R:0 untuk mengatur coba lagi pada upaya yang gagal ke 0.

/XA:SH untuk melewati file yang tersembunyi dan sistem.

Untuk menghapus info login sebanyak mungkin, tambahkan opsi berikut /NP /NS /NDL /NFL /NC.

Vince
sumber