Bu yazıda bahsedilen komutları üretim ortamında kullanmadan önce mutlaka test ortamında denemeniz önerilir. Veri kaybını önlemek için özellikle /MIR gibi parametreleri dikkatli kullanın.
Windows Server yönetiminde en sık karşılaşılan görevlerden biri, dosya ve klasörleri bir konumdan diğerine taşımaktır. Ancak basit bir kopyalama işlemi, NTFS izinlerini, dosya sahiplik bilgilerini ve diğer güvenlik özniteliklerini kaybetmenize neden olabilir. Bu yazıda, Windows Server'da dosyaları tüm yetkileri ve özellikleriyle birlikte nasıl kopyalayacağınızı öğreneceksiniz.
Neden Yetkiler Önemlidir?
Windows Server ortamlarında dosya ve klasör izinleri kritik öneme sahiptir:
- Güvenlik: NTFS izinleri, hangi kullanıcıların hangi dosyalara erişebileceğini kontrol eder
- Uyumluluk: Veri koruma mevzuatları, dosya erişim kontrollerinin korunmasını gerektirir
- İş Sürekliliği: Yanlış izinler, kullanıcıların çalışmasını engelleyebilir
- Denetim: Sahiplik ve denetim bilgileri, güvenlik kayıtları için önemlidir
Standart kopyalama yöntemleri (sürükle-bırak, CTRL+C/CTRL+V) genellikle bu bilgileri korumaz.
Robocopy: Windows Server'ın Güçlü Aracı
Robocopy (Robust File Copy), Windows Server'a yerleşik, komut satırı tabanlı gelişmiş bir dosya kopyalama aracıdır. Windows Vista ve sonraki tüm Windows sürümlerinde standart olarak bulunur.
Robocopy'nin Avantajları
- NTFS izinlerini ve ACL'leri (Access Control Lists) korur
- Dosya sahiplik bilgilerini kopyalar
- Denetim bilgilerini korur
- Kesintiye uğrayan kopyalama işlemlerini devam ettirebilir
- Çok iş parçacıklı kopyalama desteği
- Ayrıntılı log kayıtları oluşturma
- Yedekleme modu desteği
Temel Kullanım
En Basit Komut
robocopy D:\ E:\Hedef /E /COPYALL
Parametreler:
D:\- Kaynak dizinE:\Hedef- Hedef dizin/E- Tüm alt dizinleri kopyalar (boş olanlar dahil)/COPYALL- Tüm dosya bilgilerini kopyalar
/COPYALL Parametresi Neleri Kopyalar?
/COPYALL parametresi aşağıdakilerin tümünü içerir:
- Veri (D) - Dosya içeriği
- Öznitelikler (A) - Gizli, sistem, salt okunur vb.
- Zaman Damgaları (T) - Oluşturma, değiştirme tarihleri
- NTFS ACL'ler (S) - Güvenlik izinleri
- Sahiplik Bilgisi (O) - Dosya sahibi
- Denetim Bilgisi (U) - Denetim ayarları
/COPYALL yerine /COPY:DATSOU yazmak da aynı anlama gelir.
Pratik Örnekler
1. Basit Klasör Kopyalama
robocopy D:\Belgeler E:\Yedek\Belgeler /E /COPYALL
Bu komut D:\Belgeler klasörünü E:\Yedek\Belgeler konumuna kopyalar.
2. Hata Toleranslı Kopyalama
robocopy D:\ E:\Hedef /E /COPYALL /R:5 /W:10 /V
Ek parametreler:
/R:5- Hata durumunda 5 kez yeniden dener/W:10- Denemeler arası 10 saniye bekler/V- Ayrıntılı (verbose) çıktı gösterir
3. Log Dosyası ile Kopyalama
robocopy D:\Veriler E:\Yedek\Veriler /E /COPYALL /R:3 /W:5 /LOG:C:\Logs\kopyalama.log
Bu komut tüm işlemleri kopyalama.log dosyasına kaydeder.
4. Önce Test Etme (Dry Run)
robocopy D:\Test E:\Hedef\Test /E /COPYALL /L
/L parametresi ile gerçek kopyalama yapılmaz, sadece ne yapılacağı listelenir. Bu, büyük işlemler öncesi test için idealdir.
5. Ağ Üzerinden Kopyalama
robocopy D:\Paylaşım \\SunucuAdı\Hedef\Paylaşım /E /COPYALL /Z /R:10 /W:30
Ağ için önemli parametreler:
/Z- Yeniden başlatılabilir mod (kesintilerde devam edebilir)/R:10- Ağ sorunları için daha fazla yeniden deneme/W:30- Daha uzun bekleme süresi
6. Belirli Dosya Türlerini Kopyalama
robocopy D:\Dökümanlar E:\Yedek\Dökümanlar *.docx *.xlsx /E /COPYALL
Sadece .docx ve .xlsx dosyalarını kopyalar.
7. Belirli Dosyaları Hariç Tutma
robocopy D:\Veriler E:\Yedek\Veriler /E /COPYALL /XF *.tmp *.bak /XD "Geçici Dosyalar"
/XF- Belirtilen dosya türlerini hariç tutar/XD- Belirtilen dizinleri hariç tutar
İleri Seviye Kullanım
Çok İş Parçacıklı Kopyalama
robocopy D:\BüyükVeri E:\Yedek\BüyükVeri /E /COPYALL /MT:16 /R:3 /W:5
/MT:16 parametresi 16 iş parçacığı ile kopyalama yapar (1-128 arası değer alabilir). Varsayılan 8'dir.
Uyarı: Çok fazla iş parçacığı sistem kaynaklarını tüketebilir ve ağ trafiğini artırabilir.
Yedekleme Modu
robocopy D:\Kritik E:\Yedek\Kritik /E /COPYALL /B /R:3 /W:5
/B parametresi yedekleme modunu etkinleştirir. Bu, normalde erişim izniniz olmayan dosyaları kopyalamanıza olanak tanır (yedekleme ayrıcalığı gerekir).
Ayna (Mirror) Kopyalama
robocopy D:\Kaynak E:\Hedef /MIR /COPYALL
/MIR parametresi kaynak ve hedefi birebir aynı yapar (hedefte fazla olan dosyaları siler). DİKKAT: Bu parametre veri kaybına neden olabilir!
Artımlı Yedekleme
robocopy D:\Belgeler E:\Yedek\Belgeler /E /COPYALL /XO /R:3 /W:5
/XO parametresi hedefte daha yeni olan dosyaları atlar. Artımlı yedeklemeler için kullanışlıdır.
Kapsamlı Örnek: Üretim Sunucusu Yedekleme Scripti
@echo off
setlocal
REM Değişkenler
set KAYNAK=D:\
set HEDEF=E:\Yedekler\DiskD
set LOGDIZIN=C:\Logs\Robocopy
set TARIH=%date:~-4%%date:~-7,2%%date:~-10,2%
set SAAT=%time:~0,2%%time:~3,2%
set LOGDOSYA=%LOGDIZIN%\Yedek_%TARIH%_%SAAT%.log
REM Log dizinini oluştur
if not exist "%LOGDIZIN%" mkdir "%LOGDIZIN%"
REM Yedekleme başlangıç mesajı
echo ================================================ >> "%LOGDOSYA%"
echo Yedekleme Başlangıç: %date% %time% >> "%LOGDOSYA%"
echo ================================================ >> "%LOGDOSYA%"
REM Robocopy komutu
robocopy "%KAYNAK%" "%HEDEF%" /E /COPYALL /R:5 /W:10 /MT:8 /V /NP /LOG+:"%LOGDOSYA%"
REM Hata kontrolü
if %ERRORLEVEL% LEQ 7 (
echo Yedekleme başarıyla tamamlandı! >> "%LOGDOSYA%"
) else (
echo HATA: Yedekleme sırasında ciddi hatalar oluştu! >> "%LOGDOSYA%"
)
REM Bitiş mesajı
echo ================================================ >> "%LOGDOSYA%"
echo Yedekleme Bitiş: %date% %time% >> "%LOGDOSYA%"
echo ================================================ >> "%LOGDOSYA%"
endlocal
Bu script'i .bat uzantılı bir dosya olarak kaydedebilir ve Görev Zamanlayıcı ile otomatik çalıştırabilirsiniz.
Robocopy Çıkış Kodları
Robocopy işlem sonunda bir çıkış kodu döndürür:
| Kod | Anlamı |
|---|---|
| 0 | Hiçbir dosya kopyalanmadı (değişiklik yok) |
| 1 | Tüm dosyalar başarıyla kopyalandı |
| 2 | Hedefte fazla dosyalar var |
| 3 | Bazı dosyalar kopyalandı, bazı fazlalar var |
| 4 | Bazı uyumsuz dosyalar var |
| 5 | Bazı dosyalar kopyalandı, bazı uyumsuzlar var |
| 6 | Fazla dosyalar ve uyumsuzluklar var |
| 7 | Dosyalar kopyalandı, fazlalar ve uyumsuzluklar var |
| 8+ | Hatalar oluştu |
Önemli: 0-7 arası kodlar başarılı sayılır, 8 ve üzeri ciddi hatadır.
Alternatif Yöntemler
XCOPY (Eski Yöntem)
xcopy D:\* E:\Hedef\ /E /K /H /O /X
Parametreler:
/E- Alt dizinleri kopyalar/K- Öznitelikleri korur/H- Gizli ve sistem dosyalarını kopyalar/O- Sahiplik ve ACL bilgisini kopyalar/X- Denetim ayarlarını kopyalar
Not: XCOPY eski bir araçtır ve robocopy kadar güvenilir değildir. Yeni projelerde robocopy kullanmanız önerilir.
PowerShell ile Kopyalama
Copy-Item -Path "D:\*" -Destination "E:\Hedef" -Recurse -Force
Get-Acl -Path "D:\" | Set-Acl -Path "E:\Hedef"
PowerShell da kullanılabilir ancak izinleri korumak için ek işlemler gerekir.
Grafik Arayüz Araçları
Komut satırını tercih etmeyenler için:
- Richcopy - Microsoft'un robocopy için GUI arayüzü
- TeraCopy - Üçüncü parti kopyalama aracı
- FastCopy - Hızlı kopyalama aracı
En İyi Uygulamalar
1. Her Zaman Test Edin
Büyük işlemler öncesi /L parametresi ile test yapın:
robocopy D:\Önemli E:\Yedek /E /COPYALL /L > test.txt
2. Log Kayıtları Tutun
Her önemli kopyalama işlemi için log tutun:
robocopy D:\ E:\Hedef /E /COPYALL /LOG:C:\Logs\kopya_%date:~-4%%date:~-7,2%%date:~-10,2%.log
3. Yönetici Haklarıyla Çalıştırın
NTFS izinlerini ve sahiplik bilgilerini kopyalayabilmek için komut satırını yönetici olarak çalıştırın.
4. Ağ Kopyalamaları İçin Özel Ayarlar
robocopy \\Kaynak\Share \\Hedef\Share /E /COPYALL /Z /MT:4 /R:10 /W:30
- Daha az iş parçacığı kullanın (
/MT:4) - Daha fazla yeniden deneme (
/R:10) - Daha uzun bekleme süreleri (
/W:30)
5. Disk Alanını Kontrol Edin
Kopyalama öncesi hedef diskte yeterli alan olduğundan emin olun.
6. Antivirüs İstisnaları
Büyük kopyalama işlemlerinde antivirüs taramasını geçici olarak devre dışı bırakmak veya istisna eklemek performansı artırabilir.
Sorun Giderme
"Erişim Engellendi" Hatası
Çözüm:
- Komut satırını yönetici olarak çalıştırın
/Bparametresi ile yedekleme modu kullanın- Kaynak ve hedef izinleri kontrol edin
Uzun Dosya Yolu Hataları
Windows'ta dosya yolları varsayılan olarak 260 karakter ile sınırlıdır.
Çözüm:
/256parametresini kaldırın (robocopy varsayılan olarak uzun yolları destekler)- Windows 10/Server 2016+ için uzun yol desteğini registry'den etkinleştirin
Yavaş Kopyalama
Çözümler:
/MTparametresi ile çok iş parçacıklı kopyalama kullanın- Antivirüs taramasını geçici olarak devre dışı bırakın
- Ağ kopyalamaları için
/Zyerine/J(unbuffered I/O) kullanın - SMB 3.0 protokolünü kullanın (Windows Server 2012+)
"Hedef Klasör Bulunamadı" Hatası
Robocopy otomatik olarak klasör oluşturmaz.
Çözüm:
if not exist "E:\Hedef" mkdir "E:\Hedef"
robocopy D:\ E:\Hedef /E /COPYALL
Görev Zamanlayıcı ile Otomasyonu
Düzenli yedeklemeler için Windows Görev Zamanlayıcı kullanın:
- Görev Zamanlayıcı'yı açın (
taskschd.msc) - "Temel Görev Oluştur" seçeneğini tıklayın
- Görev adı ve açıklama girin
- Tetikleyici seçin (günlük, haftalık vb.)
- Eylem olarak "Program Başlat" seçin
- Program:
cmd.exe - Argümanlar:
/c "C:\Scripts\yedekleme.bat" - "En yüksek ayrıcalıklarla çalıştır" seçeneğini işaretleyin
Güvenlik Önerileri
- Yedekleme Hesapları: Özel yedekleme hesapları oluşturun ve bunlara sadece gerekli izinleri verin
- Şifreleme: Hassas veriler için BitLocker veya benzer şifreleme kullanın
- Denetim: Kopyalama işlemlerini denetim günlüklerine kaydedin
- 3-2-1 Kuralı: 3 kopya, 2 farklı ortam, 1 off-site yedek
- Düzenli Testler: Yedeklerin geri yüklenebilirliğini düzenli test edin
Performans İpuçları
Küçük Dosyalar İçin
robocopy D:\ E:\Hedef /E /COPYALL /MT:32 /R:2 /W:2
Küçük dosyalar için daha fazla iş parçacığı kullanın.
Büyük Dosyalar İçin
robocopy D:\ E:\Hedef /E /COPYALL /MT:4 /J
/J unbuffered I/O kullanır, büyük dosyalarda performans artışı sağlar.
SSD'ler İçin
robocopy D:\ E:\Hedef /E /COPYALL /MT:16
SSD'ler çoklu iş parçacığından daha fazla yararlanır.
Özet Tablosu: Önemli Parametreler
| Parametre | Açıklama | Kullanım |
|---|---|---|
/E |
Tüm alt dizinleri kopyala | Her zaman kullanın |
/COPYALL |
Tüm izinleri ve özellikleri kopyala | Yetkiler önemli olduğunda |
/MT:n |
n iş parçacığı ile kopyala | Performans için |
/R:n |
n kez yeniden dene | Kararsız ortamlarda |
/W:n |
n saniye bekle | Ağ kopyalamalarında |
/L |
Sadece listele (test) | İlk test için |
/LOG:dosya |
Log kaydet | İzlenebilirlik için |
/Z |
Yeniden başlatılabilir mod | Ağ kopyalamalarında |
/B |
Yedekleme modu | Erişim sorunlarında |
/MIR |
Ayna kopyalama | DİKKATLE kullanın |
/XO |
Eski dosyaları atla | Artımlı yedeklemeler için |
/V |
Ayrıntılı çıktı | Hata ayıklama için |
/NP |
İlerleme gösterme | Log dosyaları için |
Sonuç
Windows Server'da dosyaları yetkileriyle birlikte kopyalamak, sistem yöneticilerinin en temel görevlerinden biridir. Robocopy, bu işlem için en güçlü ve güvenilir araçtır.
Hatırlamanız gerekenler:
- Basit kopyalama için:
robocopy D:\ E:\Hedef /E /COPYALL - Her zaman
/Lile test edin - Log kayıtları tutun
- Yönetici haklarıyla çalıştırın
- Ağ işlemleri için
/Zve/Rkullanın - Performans için
/MTayarlayın - 0-7 arası çıkış kodları başarılıdır
Bu kılavuzu takip ederek, Windows Server ortamınızda güvenli, hızlı ve izlenebilir dosya kopyalama işlemleri gerçekleştirebilirsiniz.
Kaynaklar ve Daha Fazla Bilgi
- Microsoft Robocopy Resmi Dokümantasyonu
- Microsoft TechNet Robocopy Rehberi
- Windows Server komut satırında
robocopy /?yazarak tüm parametreleri görebilirsiniz
Yazar Notu: Bu yazıda bahsedilen komutları üretim ortamında kullanmadan önce mutlaka test ortamında denemeniz önerilir. Veri kaybını önlemek için özellikle /MIR gibi parametreleri dikkatli kullanın.
Son Güncelleme: Şubat 2026