Blog

Robocopy ile Dosya Yedekleme Nasıl Yapılır?

Merhaba, bu yazımda sizlere powershell üzerinden basit bir şekilde dosyalarımızı nasıl yedekleyeceğimizi, bunun yanında da görev zamanlayıcı ile birlikte nasıl düzene sokacağınızı anlatacağım. Robocopy komutunu duymuşsunuzdur. Duymayan varsa da kesinlikle bundan sonra kolaylıkla kullanabilirler.

Öncelikle dosya yedekleme işlemimize başlamak için command prompt üzerinden Robocopy komutunu kullanacağız. Robocopy.exe oldukça yeteneklidir. Bizim yaptığımız ise Robocopy.exe üzerine komut satırı ile kaynak ve hedef path leri belirleyerek, belirlediğimiz parametreler ile mevcut dosyaların kopyalanmasına imkân sağlamaktır.

Günümüzde neredeyse bütün kurum ve kuruluşlarda Microsoft’un ya da Symantec’in diğer third party tool backup ürünleri kullanılmaktadır. Bizim yapacağımız bu yedekleme işlemi, operasyonel bir iş olduğunda ya da kısa süreli bir iş lazım olduğunda uygulanabilir. Bu sayede oldukça hızlı aksiyon alınabilir. Şimdi sizlere gerekli komutun nasıl uygulandığını ve ne anlama geldiklerini anlatacağım;

robocopy.exe <Yedek Almak İstediğiniz Dizin> <Yedekleme Yapılacak Olan Dizin> /mir /mt:60 /r:2 /w:5 /np /ts /bytes /xd > c:\log.txt

Dilerseniz kodun içerisindeki tanımlara kısaca göz atalım;

/ts: Bu değer time değeridir. Yani yedek aldığınız kaynak dosyanın zaman bilgilerini ekle anlamına gelmektedir.

/bytes: Adından da anlaşılacağı gibi, herhangi bir hesaplamayı byte cinsinden yapmaya yarar.

/mt:60: Bitiş zamanlarının maximum 60 işlem sayısını göstermeye yarar. Değeri dilediğiniz gibi düzenleyebilirsiniz.

/W:5: Dosyalarınızın kopyalanması sırasında, tekrar deneme olacaksa 5 saniye bekle değeridir. Bu değeri istediğiniz gibi düzenleyebilirsiniz.

/r:2: Bu değer tekrarlama komutudur. Yani dosya kopyalama işleminizi en fazla 2 kere tekrarlayacağım anlamına gelir. Bunu da dilediğiniz gibi düzenleyebilirsiniz.

/np: Bu komut, işlem yoksa gösterme anlamına gelmektedir.

/xd: Eğer exclude tanımı yapılacaksa, bu komutu <$ exclude> şeklinde kullanabilirsiniz.

/mir: Mirror modunda kullan anlamına gelmektedir.

Log.txt yazan kısımda da C dizini içerisindeki log.txt dosyasına logu gönder demiş oluyoruz. Dosya kopyalamak için gerekli olan komutumuz hazır hale gelmiş oldu. Şimdi ise sıra bunu uğraşmadan görev zamanlayıcı üzerinden çalıştırmaya geldi.

Bu zamanlayıcı işlemi oluştururken ilk yapmanız gereken, bir Powershell açarak New-ScheduledTaskAction komutunu yazmak ve bir task oluşturmaktır. Hemen ardından New-ScheduledTaskTrigger komutu ile de görevin çalışma periyodunu ayarlamış oluyoruz.

Hemen kısa bir örnek uygulayalım. Öncelikle powershell.exe komutu ile taskımızı oluşturuyoruz. Ardından taskımızın çalışma zamanını ayarlıyoruz. Buna saat 11:00 diyelim. Ardından görevimize cozumpark diye bir isim veriyor ve register ediyoruz. Şimdi aşağıda görmüş olduğunuz Powershell scriptini oluşturuyor ve çalıştırıyoruz.

$Trigger= New-ScheduledTaskTrigger -At 11:00am –Daily $Trigger= New-ScheduledTaskTrigger -At 11:00am –Daily $User= “NT AUTHORITY\SYSTEM” $Action= New-ScheduledTaskAction -Execute “PowerShell.exe” -Argument “robocopy.exe C:\a C:\b /mir /mt:60 /r:2 /w:5 /np /ts /bytes /xd > c:\log.txt” Register-ScheduledTask -TaskName “cozumpark” -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

Görüldüğü gibi oldukça kolay bir yöntemdir. Son olarak eğer ki; dosyalarınızı restore etmek isterseniz ilk verdiğim Robocopy komutu içerisindeki dizinlerin yerlerini değiştirmeniz yeterli olacaktır. Robocopy sayesinde klasör izinleriniz değişmeden dosya taşıma da yapabilirsiniz.

Bu makalemizde powershell üzerinden Robocopy metodu ile nasıl dosya yedekleneceği ve kopyalanacağını anlatmış olduk. Bir sonraki makalemizde görüşmek dileğiyle.

Dağcan Nural

1988 İstanbul doğumluyum. Bilgisayar dünyasına olan hayranlığım çok küçük yaşlarda başladı. Bu sebeple sistem alanında kendimi geliştirmeye karar verdim. Celal Bayar Üniversitesi Bilgisayar Programcılığı ve Anadolu Üniversitesi İşletme mezunuyum. 2005 yılında Bilge Adam Sistem & Network Mühendisliği eğitimi aldım. Hemen ardından IT dünyasına giriş yaptım. Collezione şirketinde 2006 - 2018 yılları arasında Sistem Uzmanı olarak görev yaptım. 2018 Temmuz ayından beri LCWAIKIKI şirketinde System Engineer pozisyonunda çalışmaktayım. Sektörde 17 yıllık deneyime sahibim. Birçok önemli projede görev aldım. Linkedin üzerinden profilime ulaşabilirsiniz. Bilgi ve tecrübemi bu blog üzerinde paylaşıyorum. Bilgi paylaştıkça güzeldir.

İlgili Makaleler

Bir Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu