اسكريپت 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"
نظرات
ارسال یک نظر