PSPCommunity.org ورود | ثبت نام | كمك
پاک کردن Back Up های قدیمی با استفاده از ابزار Power Shell

همونطور که در پست قبلی قول داده بودم می خوام در این پست نحوه پاک کردن BACK UP  های قدیمی را توضیح بدم.

backup  های قدیمی فضای قابل توجهی از دیسک ما را اشغال می کنن که این موضوع خوشایند مدیران شبکه و شرپوینت نیست به همین دلیل به دنبال روشی هستیم که هم نسخه پشتیبان کاملی داشته باشیم و در کنار آن از فضای دیسک کمتری استفاده کرده باشیم.   همانطور که می دانیم و در پست قبلی توضیح دادم، از ابزار stsadm جهت backup از moss استفاده می کنیم ولیکن در این ابزار قابلیتی جهت پاک کردن backup  های قدیمی وجود ندارد به همین دلیل در این سناریو ابتدا توسط ابزار stsadm  از moss یک نسخه پشتیبان تهیه کرده و در ادامه آن توسط ابزار Power shell نسخه های پشتیبان قدیمی را پاک می کنیم.

برای انجام این کار مراحل زیر را دنبال می کنیم:

  • ابزار power shell  به صورت پیش فرض در windows server 2003 وجود ندارد (مایکروسافت این ابزار را درwindows server 2008 قرار داده است) پس می بایست نسخه این ابزار را download و نصب کنیم که لینک آن را براتون گذاشتم :

              http://technet.microsoft.com/en-us/scriptcenter/default.aspx

  • از طریق command prompt دستور powershell.exe را اجرا کرده تا وارد محیط powershell شویم.
  • سپس دستور Set-ExecutionPolicy Unrestricted اجرا میکنیم، به دلیل sign نبودن  script ی که اجرا میکنیم از این command استفاده می کنیم ، این دستور این امکان را به ما می دهد تا بتوانیم script های  unsigned  را در محیط powershell  اجرا کنیم.
  • یک فایل text  در notepad  ایجاد می کنیم و کد زیر را در آن paste میکنیم، و آن رادر آدرس زیر ذخیره می کنیم

          C:\backup\cleanbackups.ps1

        

# Clean-up (old) backup files created by WSS v3 (STSADM.EXE)
# Created by Marco
# Tested with PowerShell RTM v1.0 
 
# Location of spbrtoc.xml
$spbrtoc = "\\server1\backup\Sharepoint\spbrtoc.xml" 
 
# Days of backup that will be remaining after backup cleanup.
$days = 14 
 
# Import the Sharepoint backup report xml file
[xml]$sp = gc $spbrtoc 
 
# Find the old backups in spbrtoc.xml
$old = $sp.SPBackupRestoreHistory.SPHistoryObject | ? { $_.SPStartTime -lt ((get-
date).adddays(-$days)) }
if ($old -eq $Null) { write-host "No reports of backups older than $days days found in 
spbrtoc.xml.`nspbrtoc.xml isn't changed and no files are removed.`n" ; break} 
spbrtoc.xml.`nspbrtoc.xml isn't changed and no files are removed.`n" ; break} 
 
# Delete the old backups from the Sharepoint backup report xml file
$old | % { $sp.SPBackupRestoreHistory.RemoveChild($_) } 
 
# Delete the physical folders in which the old backups were located
$old | % { Remove-Item $_.SPBackupDirectory -Recurse } 
 
# Save the new Sharepoint backup report xml file
$sp.Save($spbrtoc)
Write-host "Backup(s) entries older than $days days are
 removed from spbrtoc.xml and harddisc."
 removed from spbrtoc.xml and harddisc."

 

من این script را از لینکی که براتون گذاشتم پیدا کردم، نحوه عمل کردن این script  بگونه ای است که هر 14 روز تمامی back up های قدیمی را پاک میکند:

http://blog.wauwwie.nl/Lists/Categories/Category.aspx?Name=MOSS%202007%20%2F%20WSS%20v.3

  • در آخر هم از command زیر یک  batch file بر روی moss  مان ساخته،آن را ذخیره می کنیم و همان طور که در پست قبلی توضیح دادم می توانیم این فایل را schedule کنیم.

stsadm -o backup -directory \\server1\backup -force -backupmethod full


powershell.exe C:\backup\cleanbackups.ps1

موفق و پایدار باشید:)

Posted: Sunday, July 25, 2010 11:44 AM توسط sam.lashgari

نظرات

mahmood56 گفته:

ممنون از پست جالبتون، عالی بود.

# July 26, 2010 12:28 PM
شما چه فكرمي كنيد ؟

(مورد نياز است) 

(مورد نياز است) 

(انتخابى)

(مورد نياز است) 

  
Required : Enter Code Here

اعلام مطالب

براي اينكه تغييرات در پست براي شما ايميل گردد لطفاً ثبت نام نماييد اينجا

ثبت نام مطالب اين پست RSS