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.