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