اسكريپت PowerShell براي بكاپ گرفتن از فايل ها

از بانك هاي SQL بصورت منظم و با رعايت كردن استاندارد خاصي بكاپ گرفته ميشه تو بكاپ سرور براي موارد خاص قرار شد آخرين فول بكاپ در فولدري مجزا نگهداري بشه

استاندارد نام گذاري فايل هاي بكاپ بصورت [نام بانك_FULL_تاريخ بكاپ_ساعت بكاپ] است

ليست فايل ها
$srcDir=Get-ChildItem D:\SQLServerBackup\ -Recurse 
تاريخ جاري سرور فقط تاريخ
$curDate=get-date -Format D 
فايلهاي كه نام توسعه اونها بك و تاريخ ساختشون امروزه
$srcList=$srcDir | where {$_.Extension -eq ".bak" -and $_.CreationTime.Date -eq $curDate}

اگه ليست خالي نبود
if($srcList.count)
{
 فور ايچ معروف
 foreach ($fileItems in $srcList)
  {
   گر نام فايل شامل كلمه فول بود براي اينكه لاگ بكاپ ها رو رد كنيم كه استاندارد نام گذاريشون متفاوته			
   if($fileItems.BaseName.Contains("_FULL"))
    {
      توليد آدرس مبدا و مقصد
      $srcNewName=$fileItems.DirectoryName+"\"+$fileItems
      چون قراره آخرين فول بكاپ نگهداري بشه قسمت تاريخ و زمان فايل رو حذف ميكنم تا آخرين فايل اور رايت (دوباره نويسي) بشه
      $desNewName="D:\LastBackup\" +$fileItems.BaseName.Substring(0,$fileItems.BaseName.IndexOf("_FULL"))+ ".bak"
      كپي كردن براي اجرا شدن آخرين پارامتر رو برداريد وات ايف
      Copy-Item $srcNewName -Destination $desNewName  -WhatIf
    }
  }
}

در آخر هم با استفاده از Schedule ويندوز اسكريپ رو تو زمان هاي مشخص اجر ميكنيم

تو قسمت Run دستور زير رو كپي كنيد

powershell.exe -NoLogo -File "C:\Documents and Settings\Saheb\Desktop\LastBackup.ps1"

نظرات

پست‌های معروف از این وبلاگ

مقدمه ای بر RavenDB – قسمت دوم

مقدمه ای بر RavenDB – قسمت سوم

lnav ابزاری بسیار کاربردی برای پیمایش لاگ ها در لینوکس و البته مک