Artan bir yedekleme yapmak için ROBOCOPY komutu


29

ROBOCOPY dokümantasyonundan bunaldım. Yerel dosyalarımın artımlı bir yedeğini ağ sürücüsüne (M) yapmak istiyorum. Mümkün olduğunca çabuk, günlük dosyası olmadan ve ekrana mümkün olan en az metinle çalışmasını istiyorum. Dosyalarımın tümü iç içe geçmiş çok sayıda alt klasörü olan bir klasörün (MyFolder) içinde bir yerdedir. "Artımlı" derken, sadece yeni veya değiştirilmiş olanı kopyala. Hedefteki herhangi bir tarihi dosyayı silmek istemiyorum, ancak bir dosyayı değiştirdiysem sadece yeni sürümü istiyorum. Ve eğer bir dosyayı değiştirmediysem, o zaman mevcut yedeklenmiş dosyaya kopyalamak istemiyorum. Aşağıda doğru mu? (Win7 Enterprise'ı çalıştırmak.)

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

Lütfen, robokopi dışında hiçbir şey için öneri yok. Hiçbir şey yüklememe izin verilmiyor. Ve güvenlik meselelerini de umursamıyorum. Bunun için insanlarım var (ister istesem de istemesem). ;-)


1
Alt dizinleri kopyalamak için bir / s veya / e seçeneğine ihtiyacınız vardır.
David Marshall

@DavidMarshall: oops. Bunu gerçekten biliyordum. Eklendi. Peki şimdi iyi miyim?
dmm

Evet. Benzer bir şey kullanıyorum.
David Marshall

Şimdi test ediyorum. Hala ekrana yazılmış bir sürü şey var. Gelecekteki çalışmalarda, ondan nasıl kurtulurum?
dmm

2
Akıllıca büyük fark yaratabilecek seçeneklerden biri de çok iş parçacıklı transferlere sahip olmak. /MT[:N] 4 çekirdekli bir işlemcime sahibim, bu yüzden genellikle sayılarım için 8-16 arasında bir şey kullanıyorum. Çekirdek başına 2-4 iplik gördüm. Kesinlikle donanımınızdaki farklı değerlerle test etmelisiniz. Çok okuyuculu, çok sayıda küçük dosyanız olduğunda en çok yardımcı olur. Az sayıda büyük dosyanız varsa, neredeyse hiç yardımcı olmaz.
Zoredache

Yanıtlar:


39

Birkaç senedir aşağıdaki betiğin varyantını başarıyla kullanıyorum:

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

Parametreler açıklandı

  • /MIR(Eşdeğer seçenek /E /PURGE) "ayna" anlamına gelir ve en önemli seçenektir. Kaynak klasörünüzü "master" olarak kabul eder ve hedef tarafındaki herhangi bir değişikliğin üzerine yazmasına neden olur; bu, yedekleme için yararlı bir ayardır.

  • /FFTÇok önemli bir seçenektir, çünkü dosyaların zaman damgalarını karşılaştırırken 2 saniyelik bir fark sağlar, böylece bilgisayarınız ve yedekleme aygıtınız arasındaki küçük saat farkları önemli değildir. Bu, dosya değiştirme zamanları tam olarak senkronize edilmese bile, sadece değiştirilmiş dosyaların kopyalanmasını sağlar.

  • /R:3bağlantının başarısız olması durumunda yeniden deneme sayısını belirtir ve yeniden deneme /W:10arasında 10 saniyelik bekleme süresini belirtir. Bunlar ağ üzerinden yedekleme yaparken faydalı seçeneklerdir.

  • /Z dosyaları "yeniden başlatma modunda" kopyalar, bu nedenle kısmen kopyalanan dosyalar bir kesinti sonrasında devam edebilir.

  • /NPve /NDLsen ayrıca ekleyebilir, bazı hata ayıklama çıktısını bastırmak /NS, /NC, /NFLayrıca çıkış miktarını (bkz azaltmak için belgeleri detayları için). Ancak, her şeyin beklendiği gibi çalıştığından emin olmak için ilk çalıştırma sırasında bazı hata ayıklama çıktıları yazdırmanızı öneririm.

Diğer kullanıcılar tarafından belirtilen ek faydalı parametreler

  • /XJDDizinler için "bağlantı noktaları", yedekleme sırasında sonsuz döngüler gibi sorunlara neden olabilecek sembolik bağlantılar hariçtir. Detaylar için Brian adlı kullanıcının yorumlarını gör .

  • /MT[:N]okuyucuyu kullanır ve birçok küçük dosyanın transferini hızlandırabilir. N için normal bir makinede çekirdek sayısının 2-4 katı olmalıdır. Zoredache tarafından asıl soru hakkında yorum yaptı.

Granger adlı kullanıcının yorumuna yanıt olarak düzenleyin:

Gerçekten hedefte bulunan, ancak kaynak tarafında olmayan dosyaları saklamak istiyorsanız, sadece /MIRseçeneği ile değiştirin /E. Ancak, /MIRhedefi artımlı yedeklemeler için kullanmak istediğinizde kullanmanızı şiddetle tavsiye ederim. Aksi halde, yeniden adlandırılmış veya kaynağa taşınan dosyalar hedefi kopyalar, bu da çoğaltmanız anlamına gelir. Genellikle kaynak klasör ağacımın 1: 1 kopyasını içeren hedefte bir alt klasör "yedekleme" oluşturuyorum. Bu şekilde, yedekleme klasörünün yanındaki geçmiş dosyaları hala saklayabilir ve daha sonra güvenle kaldırabilir veya yeniden düzenleyebilirsiniz.


Bu komut izin verilen dosyaların kopyalanmasına izin veriyor mu? robokopi C: \ kaynak M: \ hedef / MIR / FFT / R: 3 / W: 10 / Z / NP / NDL
Shabeer Sher

4
/ MIR (/ PURGE) dışında, hedefte kaynağında olmayan dosyaları siler. Sorulan soru açıkça bu oldu belirtti değil istedi.
Büyükanne

@Shabeer No, Robocopy varsayılan olarak sadece verileri (D), nitelikleri (A) ve zaman damgalarını (T) kopyalar. Diğer değerlerin, ACL izinleri dahil etmek için "/ copy: <value>" parametresiyle, örneğin "/ copy: DATS" ile belirtilmesi gerekir. Ancak Linux tabanlı bir NAS'a kopyaladığımdan bu benim için pek bir anlam ifade etmiyor.
pederpansen

1
@Brian İpucu için teşekkürler. Birleşme noktalarında hiçbir zaman problem yaşamadım, ama sanırım tam da onlardan kaçınmanın zararı olmaz. Cevabımda ekledi.
pederpansen

1
@pederpansen: Kullanıcı klasörlerini kopyalarken (veya sürücünün tamamını kopyalarken) olma eğilimindedir. Genellikle uygulama veri klasörü, uygulama uyumluluğu nedeniyle bir bağlantı noktasına sahip olduğu için suçludur. Örnek sonsuz bir yol görmek istiyorsanız komut isteminden "cd C: \ Users \ [USERFOLDER] \ AppData \ Local \ Application Data \ uygulama verileri \ uygulama verileri \" komutunu kullanmayı deneyin. Bu, Windows 10'da bile çalışır.
Brian

8

Aşağıdakileri kullanmayı seviyorum:

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

Bunu Yönetici olarak çalıştırdım, böylece yedekleme modu ( /bisteğe bağlı) kullanılan dosyaların kopyasını alabilir.

Artımlı yedeklemenin doğasıyla ilgili olmayan diğer seçenekler:

/XD dizinleri yedeklemenin dışında bırakmak için.

/XJD bağlantı noktalarını hariç tutmak için ("Müziğim").

/R:0 denemek için başarısız deneme girişimi 0 olarak ayarlanır.

/XA:SH Gizli ve sistem dosyalarını atlamak için.

Mümkün olduğunca fazla günlük bilgisini kaldırmak için aşağıdaki seçenekleri ekleyin /NP /NS /NDL /NFL /NC.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.