PowerShell ile Dosya Yedekleme
  1. Anasayfa
  2. Server 2019

PowerShell ile Dosya Yedekleme

2

Herkese merhaba, msHOWTO üzerinde ilk makalemde sizlere basit bir yöntem olan powershell ile dosya yedekleme işlemi ve  task schudele ile düzenli hale nasıl getiririz yedekleme sürecimizi nasıl takip ederiz bunları anlatacağım.

Komut satırından aslında tanıdığımız robocopy komutunu kullanarak bu işlemi gerçekleştiriyorum.

Robocopy.exe kaynak ve hedef lokasyonları belirleyip belli parametreler ile dosyaların kopyalanmasını sağlıyorum. Şu günlerde artık hemen hemen her kurum ve kuruluşta Microsoft backup yada 3rd party backup yazılımları kullanılsa da kısa vadeli yada operasyonel olarak hızlı aksiyon almak isteyen arkadaşlar için faydalı olacaktır.

Basit bir robocopy komutu ile işlemlerime başlıyorum.

robocopy.exe <Yedek Alınmak İstenen Klasor Dizini> <Yedekleme Yapılacak Klasör Dizini> /mir /mt:90 /r:3 /w:3 /np /ts /bytes /xd > c:\log.txt

Kullandığım parametreleri size anlatmak isterim.

/mir Mirror mode olarak kullan
/mt:90 Farklı bitiş zamanlarında sonuçlanan maksimum 90 işlem sayısı (değeri dosya sayısına göre düzenleyebilirsiniz) /r:3 Dosya kopyalama işlemini en fazla 3 kere tekrarla, (değeri değiştirebilirsiniz.)
/w:3 Dosya kopyalama işlemi sırasında tekrar denenecekse 3 sn bekle (değeri değiştirebilirsiniz.)
/np İşlem yoksa gösterme.
/ts Kaynak dosyanın zaman bilgilerini ekle.
/bytes Hesaplama için bayt cinsinden işlem yap.
/xd exculude tanımlamasını bu parametreye yapabilirsiniz. Örneğin “$ exclude” şeklinde.  > c:\log.text export log.txt Son olarak log çıktısını C: dizinine txt olarak ver

Dosya kopyalama komutumuz hazır. Sırada bunu yeni bir task  Schedule oluşturarak periyodik hale getirmeye geldi.

New-ScheduledTaskAction komutu ile powershell çalıştırıp yukarıda yazdığımız komutu çalıştıracak task oluşturuyorum.

New-ScheduledTaskTrigger komut ile de bu taskımızın çalışma periyodunu belirliyoruz.

Örneğin:  

New-ScheduledTaskAction -Execute “PowerShell.exe” komutu ile taskımı oluşturuyorum.

New-ScheduledTaskTrigger -At 10:00am –Daily komutu ile de taskımın çalışma zamanını belirliyorum.

Register-ScheduledTask -TaskName “test” taskımında adını belirliyerek register ediyorum.

Buraya kadar aslında hepimizin bildiği süreçler bu komutları bir araya getirerek PowerShell ile basit bir script oluşturuyorum.

$Trigger= New-ScheduledTaskTrigger -At 10:00am –Daily $Trigger= New-ScheduledTaskTrigger -At 10:00am –Daily $User= "NT AUTHORITY\SYSTEM" $Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "robocopy.exe C:\a C:\b /mir /mt:90 /r:3 /w:3 /np /ts /bytes /xd > c:\log.txt" Register-ScheduledTask -TaskName "test" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

 

Uygulama ekran görüntüleri:

Resim-1

Resim-2

Uygulaması gayet basit yeri geldiğinde can kurtaracak bir çözümdür. Dosyaları restore etmek istediğinizde dizinlerin yerini değiştirip robocopy komutunu çalıştırmanız işinizi görecektir.

robocopy.exe < Yedekleme Yapılan Klasör Dizin> <Recovery Yapılacak Dizin> /mir /mt:90 /r:3 /w:3 /np /ts /bytes /xd > c:\log.txt

Robocopy ile aslında çok daha fazla çözüm sağlayabilirsiniz. Örneğin DFS yapısı kurgulamak yerine yine robocopy ile iki web sunucunuz içerisinde ki FTP verilerini belirlediğiniz periyotlar yada manual olarak bu komut dizinleri ile gerçekleştirebilirsiniz.

Umarım sizler için faydalı olmuştur. PowerShell kullanarak basit çözümler oluşturma ile ilgili yazılarıma devam edeceğim. Bir sonraki yazımda görüşmek üzere…

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar
www.mshowto.org

TAGs: powershell, backup, recovery, robocopy, mshowto,

 

 

 

 

 

 

Bu İçeriğe Tepkin Ne Oldu?
  • 2
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 2
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

1987 Ankara doğumluyum. 2008 Maltepe üniversitesi Bilgisayar bölümü mezunuyum. 2005 yılından itibaren bilişim, inşaat ve üretim gibi çeşitli sektörlerde microsoft ürünlerinin kullanımı alt yapınsın kurulması, kullanılması ve sürdürülmesi şeklinde görevler üstlendim. 2005 yılında superonline bayisi home computer ile okurken başladığım kariyerime Vargonen teknolojide 2 yıl Microsoft sertifikalı sistem yöneticisi olarak çalıştıktan sonra 2018 kasım ayı itibari ile Ürün geliştirme yöneticisi olarak görev almaktayım. İş süreçlerim kapsamında Müşterilerimizin talepleri doğrultusunda Microsoft ve Linux işletim sistemleri ve çeşitli sanallaştırma platformları üzerine kurguladığımız çözümler ile proje ve alt yapı hazırlıyor hayata geçiriyoruz.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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

Yorumlar (2)

  1. Merhaba Benim bu yedekleme konusunda bir sorum olacaktı. Bir müşterimin cihazında sürekli yedeklenmesi gereken veriler mevcut ve bunu cloud’a aktarmamız gerekli Yani eğer sistem yeni yedek aldığında otomatik olarak cloud’a gitmesi lazım. Ancak burada şöyle bir sorun var. Cloud’un kapasitesi limitli ve 2-3 yedekten sonra cloud firmasına extra bir ücret ödememiz gerekiyor. Benim merak ettiğim şey ise. Son 6 dosyayı kopyala ve hedefte daha fazla dosya varsa kontrol et eski dosyaları sil.

    A dizininde 1.zip,2.zip,3.zip,4.zip,5.zip,6.zip dosyaları olduğunu farz edelim. ve hep güncel olanı almak istiyoruz ve son 2 dosyayı yedeklemek istiyoruz hep. Yedekleme işlemi başlattığımda 5.zip,6.zip dosyalarını nasıl aldırabilirim. Ve onu aldırdım diyelim 7.zip eklendiğinde hedef klasördeki 5-6.zip dosyalarını kontrol ettirip 5.zip dosyasını silip 7.yi atmasını istiyorum bunu nasıl başarırım.

    Bir de halihazırda yedek klasöründe kaydedilen yedek dosyalarının eski olanlarının silinmesini nasıl sağlayabilirim. 50 tane dosya varsa son 6 tanesini tutmasını yani.

    • Erhan merhaba, bahsetmiş olduğun yapı için ciddi kod yazmak lazım robocopy bu noktada pek yeterli kalmayabilir. PowerShell ile yapılamaz değil ancak yapıyı doğru mimari etmek lazım. bir kaç farklı schudel ile de yapılabilir periyodik bir süreç ise mesala belli tarihlerde silme geçmişe dönük silme işlemi yaptırılabilir. Farklarıda dosya isimlerinde göre yazılan bir algoritmaya göre yeni dosylar alınabilir. Ancak senin istediğin yapıda işin içine CBT (change block tracikng) de giriyor gibi eğer bunuda istersen baya bildiğin backup yazılımı yazmak gerekir.

Bir yanıt yazın

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