Robocopy (Robust File Copy), Microsoft Windows işletim sistemlerinde yerleşik olarak bulunan ileri seviye bir dosya ve dizin kopyalama aracıdır. Standart kopyalama komutlarına göre çok daha güçlü olan Robocopy, büyük veri kümelerinin, klasörlerin ve dosyaların ağ üzerinden veya yerel diskler arasında hızlı, güvenilir ve özelleştirilebilir şekilde kopyalanmasını sağlar.
Robocopy, bozuk bağlantılarla başa çıkma, yalnızca değişiklikleri kopyalama (incremental copy), yeniden deneme yapma ve kopyalama hızını optimize etme gibi gelişmiş özelliklere sahiptir. Özellikle yedekleme işlemlerinde, sunucular arasında dosya taşıma veya NTFS izinleri, zaman damgaları ve dosya özniteliklerini koruyarak veri kopyalama gibi işlemlerde sıkça kullanılır.
Robocopy’nin Temel Özellikleri
✅ Ağ üzerinden veya yerel diskler arasında hızlı kopyalama yapar.
✅ NTFS izinleri, dosya öznitelikleri, zaman damgaları ve mülkiyet bilgilerini koruyarak kopyalama yapar.
✅ Eksik veya değişen dosyaları yeniden kopyalamadan sadece yeni değişiklikleri aktarır.
✅ Bağlantı kesintilerinde belirli aralıklarla yeniden deneme yaparak kesintisiz kopyalama sağlar.
✅ Çok büyük dosya ve klasörleri yönetebilir, milyonlarca dosyanın bulunduğu yapıları optimize ederek taşır.
✅ Günlük dosyası (log) oluşturarak hangi dosyaların kopyalandığını raporlayabilir.
Robocopy ile NTFS İzinlerini Kaybetmeden Kopyalama Nasıl Yapılır?
Robocopy, varsayılan olarak dosya ve klasörlerin içeriğini kopyalar, ancak NTFS izinlerini taşımaz. Eğer NTFS izinlerini kaybetmeden bir klasörü başka bir konuma taşımak istiyorsanız, /COPYALL veya /COPY:DATSOU parametresini kullanmanız gerekir.
👉 İzinleri ve tüm öznitelikleriyle kopyalamak için:
robocopy Kaynak_Klasör Hedef_Klasör /COPYALL /E
Bu komut, NTFS izinleri (ACL), dosya sahipliği (Owner) ve denetim bilgilerini (Audit) dahil olmak üzere tüm verileri eksiksiz olarak taşır.
Robocopy Kopyalama Modları ve Parametreleri
Robocopy’nin sunduğu parametreler sayesinde dosya ve klasörleri detaylı bir şekilde yönetebilirsiniz. İşte bazı kritik parametreler:
1️⃣ Temel Parametreler:
- /E → Boş klasörler dahil tüm alt dizinleri kopyalar.
- /S → Boş klasörleri hariç tutarak tüm alt dizinleri kopyalar.
- /Z → Kesintiye uğrayan kopyalamayı kaldığı yerden devam ettirir (yeniden bağlanabilir kopyalama).
- /MOVE → Kaynak klasördeki dosyaları ve dizinleri hedef klasöre taşır (kopyaladıktan sonra siler).
- /MIR → Klasörleri ayna modunda eşitler. Kaynak klasörde olmayan dosyalar hedef klasörden silinir.
2️⃣ NTFS İzinleri ve Güvenlik ile İlgili Parametreler:
- /COPY:DATSOU → NTFS özniteliklerini ve izinleri koruyarak kopyalar. (D=Data, A=Attributes, T=Timestamps, S=Security, O=Owner, U=Audit)
- /COPYALL → Tüm öznitelikleri ve izinleri içerir (COPY:DATSOU ile aynı işlevi görür).
- /SEC → Güvenlik izinlerini (ACL) koruyarak kopyalar.
- /ACL → Yalnızca NTFS izinlerini kopyalar.
- /SECFIX → Mevcut dosyaların NTFS izinlerini düzelterek kopyalar.
3️⃣ Kopyalama Hızını Optimize Eden Parametreler:
- /MT:32 → Çoklu iş parçacığı kullanarak 32 eşzamanlı kopyalama işlemi yapar (varsayılan değer 8’dir).
- /R:3 → Bağlantı kesintisi olduğunda 3 kez tekrar dener (varsayılan 1 milyon).
- /W:5 → Yeniden denemeden önce 5 saniye bekler.
- /LOG:log.txt → Kopyalama işleminin detaylarını “log.txt” dosyasına kaydeder.
Örnek Kullanım Senaryoları
📌 Örnek 1: NTFS İzinleri ve Öznitelikleriyle Birlikte Kopyalama
robocopy C:\Kaynak Klasör D:\Hedef Klasör /E /COPYALL
🔹 Bu komut, tüm dosya ve klasörleri, NTFS izinleri ve güvenlik ayarlarıyla birlikte eksiksiz olarak kopyalar.
📌 Örnek 2: Yalnızca Değişiklikleri Kopyalama (İncremental Copy)
robocopy C:\Kaynak D:\Hedef /E /SEC /XO
🔹 Bu komut, yalnızca değişmiş veya yeni eklenmiş dosyaları kopyalar ve NTFS izinlerini de korur.
📌 Örnek 3: Klasörleri Aynı Hale Getirme (Mirror Mode)
robocopy C:\Kaynak D:\Hedef /MIR /SEC
🔹 Bu komut, hedef klasörü kaynak klasör ile birebir aynı hale getirir. Eğer hedefte olup kaynakta olmayan bir dosya varsa, onu siler.
📌 Örnek 4: Log Dosyası Tutma ve Hızlı Kopyalama
robocopy C:\Kaynak D:\Hedef /E /COPYALL /MT:16 /LOG:C:\robocopy_log.txt
🔹 16 iş parçacığı ile paralel kopyalama yapar ve işlemi bir log dosyasına kaydeder.
NTFS izinlerini, dosya özniteliklerini ve sahiplik bilgilerini koruyarak kopyalama yapan Robocopy komutu:
robocopy "C:\KaynakKlasör" "D:\HedefKlasör" /E /COPYALL /SEC /DCOPY:T /R:3 /W:5 /LOG:C:\robocopy_log.txt
Komut Açıklamaları:
- “C:\KaynakKlasör” → Kopyalanacak klasörün yolu
- “D:\HedefKlasör” → Dosyaların taşınacağı hedef klasör
- /E → Boş klasörler dahil tüm alt klasörleri kopyalar
- /COPYALL → NTFS izinleri (ACL), sahiplik (Owner), denetim bilgileri (Audit), zaman damgaları ve öznitelikleri koruyarak kopyalar
- /SEC → NTFS izinlerini koruyarak kopyalama yapar
- /DCOPY:T → Klasörlerin zaman damgalarını da korur
- /R:3 → Bağlantı kesildiğinde 3 kez yeniden deneme yapar
- /W:5 → Yeniden denemeler arasında 5 saniye bekler
- /LOG:C:\robocopy_log.txt → Kopyalama işlemini “C:\robocopy_log.txt” dosyasına kaydeder
Bu komut, kaynak klasör içindeki tüm dosya ve alt klasörleri NTFS izinleriyle birlikte eksiksiz bir şekilde hedef klasöre taşır.
Sonuç olarak,
Robocopy, büyük ölçekli dosya taşıma, yedekleme ve veri senkronizasyonu işlemlerinde en güçlü araçlardan biridir. Windows’un klasik dosya kopyalama yöntemlerine kıyasla hızlı, güvenilir ve kesintisiz çalışır.
Özellikle NTFS izinlerini kaybetmeden kopyalama yapmak için /COPYALL veya /COPY:DATSOU parametrelerini kullanmanız gerekir. Büyük sistem geçişlerinde veya veri taşıma süreçlerinde Robocopy’nin doğru kullanımı, veri kaybını önler ve kopyalama sürecini optimize eder.
Bu komutları, farklı senaryolara göre özelleştirerek dosya kopyalama işlemlerini güvenli ve verimli hale getirebilirsiniz!
Kaynak:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy