RoboCopy


          Bu yazıda size dilediğiniz klasörlerinizi hiçbir 3. parti araç kullanmadan ve 3. parti araçlardan çok daha performanslı bir şekilde nasıl yedekleyebileceğinizi ve bunu nasıl otomatiğe bağlayacağınızı anlatacağım. Bunun içinde RoboCopy adlı Windows aracını kullanacağız…

Bu Komut Satırı bazlı araç varsayılan olarak C:\Windows\System32\Robocopy.exe lokasyonunda bulunur. İlk olarak Windows NT 4.0 Geliştirici Kiti ile birlikte sunulan araç Windows Vista‘dan beri varsayılan bir Windows özelliği olarak kullanıcıya sunuluyor. Özellikle sistem yöneticileri bu aracı kullanarak çok kapsamlı yedekleme süreçleri hazırlayabilirler. Ancak ben komutu ev kullanıcılarının ihtyaç duyabileceği seviyede anlatacağım..

Robocopy aracının üstünlükleri ise son derece esnek olması ve çeşitli komut kombinasyonları ile detaylı yedekleme stratejileri belirlemeye olanak sağlaması, çok kanallı (Multi-thread) çalışabilmesi, senkronizasyon olanağı sağlaması sayılabilir…

           Bilmemiz gerek ilk şey bu aracın bir klasör yedekleyicisi olduğu. Bu aracı kullanarak dosya yedekleyemezsiniz. Örneklemek gerekirse C:\Icon\Notebook.ico ikon dosyasını yedekleyemezsiniz ama C:\Icon\ klasörünü yedekleyebilirsiniz. Dolayısıyla C:\Icon\ klasörünün içindeki Notebook.ico ikon dosyasını da yedeklemiş olursunuz.

Araç Komut İstemcisi‘nden robocopy komutu ile çağrılarak kullanlıyor. Anccak bu şekilde kullanım pek pratik olmayacağı için biz bir script hazırlayarak onunla kullanacağız. Öncelikle ana komutları görelim:

Temel komut

robocopy <Kaynak> <Hedef> <Ekstra seçenekler>

şeklinde.

Açarsak yukarıda örnek verdiğim C:\Icon\ klasörünü D:\Yedekler\Icon\ hedefine kopyalamak için kullanacağımız temel komut robocopy C:\Icon D:\Yedekler\Icon şeklinde olacaktır. Eğer kaynak veya hedef adreste boşluk(lar) varsa adresi tırnak işareti içine almayı unutmayın. Örneğin “D:\Yedekler\Icon kladörü” gibi.

Ekstra komutlara gelince altta temel olarak ihtiyacınız olan birkaç komutu veriyorum. Kullanabileceğiniz bütün komutların listesine ise buradan ulaşabilirsiniz. (İngilizce)

  • /s  Bütün alt klasörleri de (Boş klasörler hariç) kopyalar.
  • /e  Bütün alt klasörleri de (Boş klasörler dahil) kopyalar.
  • /z  Kopyalamayı herhangi bir sebepten dolayı yarım kaldığında tekrar başlatacak şekilde yapar.
  • /b  Kopyalamayı yedekleme modunda yapar. Yani bütün dosyaları yedekler.
  • /purge Artık kaynakta yer almayan dosyaları hedef klasörden siler.
  • /mir Hedefteki dosyaları kontrol ederek sadece yeni dosyaları hedefe kopyalar. (Önemli: Yazının sonundaki uyarıyı mutlaka okuyun)
  • /mov Dosyaları taşır ve taşıma bititkten sonra kaynağı siler.
  • /256 Dosya isimlerindeki 256 karakter sınırını iptal eder. Sadece 256 karakterden uzun isimlere sahip dosyalarınız varsa kullanın.
  • /np Kopyalama sürecinin komut satırında görüntülenmesini engeller.
  • /log:  Yapılan işlemleri bir günlüğe kaydeder.


Dikkatli okuyucular farketmiştir:  /mir komutu ile  /e ve /purge komutlarının bileşimi aynı anlama geliyor. Ancak aralarında ufak bir fark var:  /mir konutunu kullanırsanız hedef dizinin mevcut olması durumunda güvenlik seçeneklerinin üzerine yazılır oysa /e + /purge komutunu kullanırsanız hedef dizin hali hazırda mevcut olsa bile güvenlik seçenekleri aynen bırakılır ve üzerine yazılmaz.

Girişte de belirttiğim gibi bu komutları kullanmak için bir script  hazırlayacağız. Ben örnek olarak C:\ kök dizininde bulunan C:\Icon, C:\Blog ve C:\Portable Programlar klasörüyle kendi kullanıcı hesabım altında bulunan C:\Users\TEST\Documents\PDF ler klasörlerini yedekleyeceğim.

Bunun için önce kaynak klasörleri bir Metin Belgesi‘nde yazıyorum;

C:\Icon

C:\Blog

“C:\Portable Programlar”

“C:\Users\TEST\Documents\PDF”

 

Ardından hedef klasörü giriyorum. Ben hepsini aynı lokasyona yedekliyorum ama siz farklı farklı lokasyonlara yedekleyebilirsiniz;

Robocopy C:\Icon E:\Yedekler\Icon

Robocopy C:\Blog E:\Yedekler\Blog

Robocopy “C:\Portable Programlar” “E:\Yedekler\Portable Programlar”

Robocopy “C:\Users\TEST\Documents\PDF ler” “E:\Yedekler\PDF ler”

        Şimdi  bütün alt klasörlerin de (Boş klasörleri dahil ederek) kopyalanması için  /e ve senkronizasyon yapılması için /mir komutlarını ekliyorum. Komutların anlamını yukarıda açıkladım.

Robocopy C:\Icon E:\Yedekler\Icon /e /mir

Robocopy C:\Blog E:\Yedekler\Blog /e /mir

Robocopy “C:\Portable Programlar” “E:\Yedekler\Portable Programlar” /e /mirRobocopy “C:\Users\TEST\Documents\PDF ler” “E:\Yedekler\PDF ler” /e /mir

          Bu temel olarak yeterli ancak isterseniz günlük tutulmasını da sağlayabilirsiniz. Bunun için /log: komutunu kullanıyorum. Bu komut her yedeklemeden sonra bir günlük dosyasının Masaüstünde oluşmasını sağlayacak;

Robocopy C:\Icon E:\Yedekler\Icon /e /mir /log:Yedekleme günlüğü.txt

Robocopy C:\Blog E:\Yedekler\Blog /e /mir /log+:Yedekleme günlüğü.txt

Robocopy “C:\Portable Programlar” “E:\Yedekler\Portable Programlar” /e /mir /log+:Yedekleme günlüğü.txt

Robocopy “C:\Users\TEST\Documents\PDF ler” “E:\Yedekler\PDF ler” /e /mir /log+:Yedekleme günlüğü.txt

          Dikkat ettiyseniz ilk /log: komutundan sonra komutu /log+: şeklinde değiştirdim. Bunun sebebi + işaretinin her klasörün log dosyasını ayırması. Oysa + işaretini koymazsam 4 klasörün log dosyası da birbirine eklenir. Ancak bu komut (/log:) sürecin komut istemcisinde görüntülenmesini de engeller. Komut istemcisinde görüntülenmesini istiyorsanız /tee komutunu da ekleyin.

Ayrıca performansı arttırmak için işlem kanalı (Multi Thread) sayısını arttırabilirsiniz. Bunun için /mt komutunu kullanacaksınız. Bu komutu girmek işlemi 8 kanallı olarak yürütür. Ama komutu /mt:kanal sayısı şeklinde kullanarak kopyalamanın 2 ila 256 paralel işlemde yapılmasını sağlayabilirsiniz.

Son olarak Komut İstemcisi’nin işlem bittikten sonra kapanmasını istemiyor incelemek istiyorsanız son satıra pause komutunu ekleyin:

Robocopy C:\Icon E:\Yedekler\Icon /e /mir /mt /log:Yedekleme günlüğü.txt

Robocopy C:\Blog E:\Yedekler\Blog /e /mir /mt /log+:Yedekleme günlüğü.txt

Robocopy “C:\Portable Programlar” “E:\Yedekler\Portable Programlar” /e /mir /mt /log+:Yedekleme günlüğü.txt

Robocopy “C:\Users\TEST\Documents\PDF ler” “E:\Yedekler\PDF ler” /e /mir /mt /log+:Yedekleme günlüğü.txt

Pause

         Şimdi komutlarımız hazır. Metin belgesinde Dosya/Farklı Kaydet yolunu izleyerek herhangibirisim.bat olarak kaydederek scripti oluşturun. Ben Yedekle.bat olarak oluşturdum.

Artık çift tıklayarak kullanabilirsiniz. Ancak görünümü pek hoş olmadığı için (Altta soldaki resim) bunu Masaüstü dışında herhangi bir lokasyona taşıyabilir ve ondan sonra kısayol oluşturarak kullanabili,rsiniz. Bu size kısayola simge atama imkanı sağlayacaktır.. Kısayola atayacağınız simge dilediğiniz bir simge olabilir. Uygun bir simgeniz yoksa simge adresi olarak %SystemRoot%\System32\sdcpl.dll adresini kullanın. Sonuç: (Sağdaki resim)

Bu yedeklemeyi bir takvime veya zamanlamaya bağlamak son derece kolay. Bunun için burada anlattığım gibi oluşturduğunuz script için bir görev oluşturmanız yeterli. Artık dosyalarınız sizin belirlediğiniz bir takvim veya zamanlama ile yedeklenecek;


Eğer /mir komutunu uyguluyorsanız yedekleme lokasyonundan hiçbirşey silmeyin.
/mir komutu senkronizasyonu çift taraflı yaptığı için hedef klasörden artık kullanmayacağınız birşeyi silmeniz ilk senkronizasyonda bu dosyayı kaynak klasörden de kurtarılamayacak bir şekilde silecektir.

Dikkatli de olsanız “Tamam ben dikkate edeceğim hedef klasörden hiçbirşey silmeyeceğim” de deseniz tavsiyem dosyalarınız çok önemli ise /mir komutunu kullanmayın. Bu zaten var olan dosyaların üzerine yazaılarak yedeklenmesini, dolayısıyla sürenin uzamasını sağlar ama dosylarınız her zaman garantide olur.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s