Windows ortamında günlük kopyalama işlemleri genellikle copy–paste veya xcopy komutlarıyla yapılır. Küçük dosyalar için bu yöntemler yeterlidir; ancak:
- Milyonlarca dosya içeren klasörler,
- Yüzlerce GB boyutunda tek dosyalar (örneğin sanal disk imajları),
- Ağ üzerinden uzun süreli kopyalamalar,
- Felaket kurtarma (Disaster Recovery – DR) senaryoları söz konusu olduğunda bu klasik yöntemler yetersiz kalır. İşte bu noktada Robocopy (Robust File Copy) devreye girer.
Microsoft tarafından geliştirilen bu araç hızlı, dayanıklı ve esnek dosya kopyalama, senkronizasyon ve yedekleme imkânı sunar.
Robocopy’nin Öne Çıkan Özellikleri
- Kesintilere Dayanıklılık (/Z, /ZB): Ağ kopması, elektrik kesintisi gibi durumlarda kaldığı yerden devam eder.
- Senkronizasyon (/MIR): Kaynak ve hedef klasörleri birebir aynı hale getirir. Fazla dosyaları da siler.
- Hata Toleransı (/R, /W): Yeniden deneme sayısı ve bekleme süresi ayarlanabilir.
- NTFS İzinleri ve Metadata Koruma (/COPYALL, /SEC): Tarih damgaları, sahiplik, güvenlik izinleri dahil tüm özellikleri korur.
- Çoklu Thread ile Hız (/MT): Paralel kopyalama sayesinde büyük veri transferleri hızlanır.
- Filtreleme (/XD, /XF): İstenmeyen klasör ve dosyaları hariç tutar.
- Loglama (/LOG, /TEE): Ayrıntılı raporlama ile sürecin takibini kolaylaştırır.
Temel Kullanım
robocopy C:\Data D:\Backup /MIR /Z /R:1 /W:1 /LOG:C:\backup_log.txt
- /MIR → Kaynak ve hedefi birebir aynı yapar.
- /Z → Kopyalama yarıda kalırsa kaldığı yerden devam eder.
- /R:1 → Hata durumunda yalnızca 1 kez yeniden dene (varsayılan 1 milyon).
- /W:1 → Yeniden denemeler arasında 1 saniye bekle.
- /LOG → İşlem kaydını log dosyasına yaz.
Önemli Nokta: /Z parametresi hangi dosyanın hangi byte’a kadar kopyalandığını kaydeder. Böylece büyük dosyalarda kesinti yaşansa bile eksik kısımdan devam eder.
İleri Parametreler
- /COPYALL → Tüm metadata (tarih, izin, sahiplik, audit bilgileri) kopyalanır.
- /SEC → NTFS izinleri korunarak kopyalama yapılır.
- /ZB → Normal kopyalama başarısız olursa “Backup Mode” ile devam eder.
- /MT:n → Çoklu thread kopyalama (örn.
/MT:32). - /XD <klasör> → Belirli klasörleri hariç tutar.
- /XF <dosya> → Belirli dosyaları hariç tutar.
- /TEE → Log çıktısını hem ekrana hem dosyaya yazdırır.
Örnek Kullanım Senaryoları
1. Günlük Yedekleme
Her gece kaynak klasörü yedek klasörle birebir aynı hale getir.
robocopy C:\Data D:\Backup /MIR /Z /R:1 /W:1 /LOG:C:\Logs\backup_%date%.txt
Günlük log dosyası tarih bazlı oluşturulur.
2. Ağ Üzerinden Kopyalama
Sunucular arası dosya transferi yaparken ağ kesilirse kaldığı yerden devam eder.
robocopy \\Server1\Share \\Server2\Share /MIR /Z /R:3 /W:5 /MT:16 /LOG:C:\Logs\network_copy.txt
16 thread ile kopyalama hızlanır.
3. Büyük Tek Dosya Transferi
100 GB’lık ISO dosyasını kopyala.
robocopy C:\ISO D:\ISO bigdata.iso /Z /R:2 /W:5 /LOG:C:\Logs\iso_copy.txt
Kesinti yaşansa bile /Z ile kaldığı yerden devam eder.
4. Felaket Kurtarma (DR) Senaryosu
Kritik sanal makineleri DR lokasyonuna kopyala.
robocopy \\Prod-DC\VMs \\DR-DC\VMs /MIR /ZB /MT:32 /COPYALL /R:5 /W:10 /LOG:C:\Logs\dr_sync.txt
/COPYALL ile tüm izinler, zaman damgaları korunur.
5. Test Ortamını Yenileme
Üretimden test ortamına veri taşırken gereksiz dosyaları hariç tut.
robocopy \\Prod\Data \\Test\Data /MIR /XD Logs Temp Cache /XF *.bak *.tmp /MT:8 /R:1 /W:1 /TEE /LOG:C:\Logs\test_copy.txt
Log ve temp klasörleri hariç tutulur, gereksiz dosya kopyalanmaz.
6. Artımlı (Incremental) Yedekleme
Sadece değişen dosyaları kopyala.
robocopy C:\Source D:\Dest /E /XO /XC /XN /LOG:C:\Logs\incremental.txt
/XO, /XC ve /XN ile aynı veya eski dosyalar atlanır.
7. Arşivleme
90 günden eski dosyaları arşiv klasörüne taşı.
robocopy C:\Projects D:\Archive /MOV /MINAGE:90 /LOG:C:\Logs\archive.txt
/MOV ile dosyalar taşınır, kaynak klasör temizlenir.
8. İzleme + Loglama
Süreci hem ekranda hem log dosyasında gör.
robocopy C:\Finance D:\FinanceBackup /MIR /Z /MT:12 /TEE /LOG:C:\Logs\finance.txt
/TEE ile çıktı hem ekrana hem dosyaya yazılır.
9. Dosya Türlerini Hariç Tutma
Geçici ve log dosyaları hariç bırak.
robocopy C:\Data D:\Backup /E /XF *.tmp *.bak *.log /LOG:C:\Logs\filtered.txt
Sadece gerekli dosyalar taşınır.
10. Klasör Yapısını Kopyalama (Dosyasız)
Sadece klasör ağacını kopyala.
robocopy C:\Data D:\Empty /E /CREATE /LOG:C:\Logs\structure.txt
/CREATE parametresi ile boş klasör yapısı oluşturulur.
Öneri : Dosya sunucusu taşıma projelerinde çok sık kullandığım komut;
robocopy s:\ d:\ /XX /MIR /SEC /R:0 /MT:32 /V /NFL /NJH /TEE /LOG:[logfile]
Parametrelerin Detaylı Açıklaması
- *s:\ d:* → Kaynak S sürücüsü, hedef D sürücüsü.
- /XX → Fazlalıkları korur. Normalde
/MIRfazladan dosyaları siler;/XXile fazladan dosyalar hedefte kalır. - /MIR → Kaynak ve hedef klasör yapısını ayna şeklinde kopyalar (subfolder + dosyalar).
- /SEC → NTFS izinleri ile birlikte kopyalar. Güvenlik tanımları korunur.
- /R:0 → Hata olduğunda yeniden deneme yapmaz. Varsayılan 1.000.000 denemedir. Bu komutta hata alınırsa atlayıp devam eder.
- /MT:32 → 32 thread ile paralel kopyalama yapar. Büyük veri transferlerinde ciddi hız kazandırır.
- /V → Detaylı (verbose) çıktı verir. Hangi dosyaların kopyalandığı görülebilir.
- /NFL → No File List. Dosya isimlerini listemez, sadece özet bilgi verir. (Çıktıyı sadeleştirir.)
- /NJH → No Job Header. Başlık satırlarını göstermez.
- /TEE → Çıktıyı hem ekrana hem log dosyasına yazar.
- /LOG:[logfile] → Çıkış bilgilerini belirtilen log dosyasına kaydeder.
Bu Komutu ile;
- S sürücüsündeki tüm klasör ve dosyaları, NTFS izinleriyle birlikte D sürücüsüne birebir kopyalar.
- Kaynakta olup hedefte olmayan dosyaları ekler.
- Hedefte olup kaynakta olmayan dosyaları silmez (çünkü
/XXvar). - Hata durumunda tekrar deneme yapmaz (
/R:0). - 32 thread ile yüksek hızda kopyalar.
- Çıktı hem ekranda hem log dosyasında izlenebilir, ancak dosya listesi ve başlıklar yoktur → daha özet log.
Kullanım Senaryosu
- Büyük Disk Senkronizasyonu (Read-Only Modda)
Örneğin bir dosya sunucusunun verilerini yedek sürücüye aktarıyorsun. Hedefte farklı fazladan dosyalar olabilir, onları silmek istemiyorsun →/XXdoğru tercih. - İzinleri Koruyarak Kopyalama
Kurumsal ortamlarda dosya paylaşım izinleri kritik olabilir./SECsayesinde NTFS izinleri korunur. - Hızlı, Tek Seferlik Kopyalama
/R:0sayesinde başarısız olan dosyalarda zaman kaybedilmez. Özellikle bozuk dosyalar varsa işlem hızlıca devam eder.
Dikkat Edilmesi Gerekenler
- /MIR parametresi riskli: Kaynakta olmayan dosyalar hedefte de silinir. Yanlış kullanım veri kaybına yol açabilir.
- Çoklu thread (/MT) disk ve CPU’yu zorlayabilir. Sistem kapasitesine göre ayarlanmalı.
- Log dosyaları incelenmeli: Başarısız dosyalar log sayesinde tespit edilir.
- Canlıya almadan test yapılmalı: Küçük dataset üzerinde deneme, hataları önceden görmenizi sağlar.
Robocopy, Windows’un sunduğu en güçlü dosya kopyalama aracıdır. Sağladığı:
- Kesintilere dayanıklılık (/Z, /ZB),
- Tam senkronizasyon (/MIR),
- Esnek filtreleme (/XD, /XF),
- Yüksek performans (/MT),
- Kapsamlı loglama (/LOG, /TEE)
özellikleriyle sadece bir kopyalama aracı değil aynı zamanda yedekleme, senkronizasyon ve felaket kurtarma stratejilerinin profesyonel çözümüdür. Doğru parametrelerle kullanıldığında Robocopy hem zaman kazandırır hem de veri güvenliğini en üst düzeye çıkarır.