バックアップ ファイルをクリーンアップする (Windows SharePoint Services 3.0)

ほとんどのデータ保存およびバックアップ保持のポリシーでは、古いバックアップや使用されなくなったバックアップの定期的なクリーンアップを行うことができます。バックアップを必要な期間にわたって保持することは非常に重要です。ただし、古くなったバックアップ ファイルを定期的に削除またはアーカイブしない場合は、短期のバックアップ ストレージ デバイスはすぐに空き容量がなくなります。SharePoint 製品とテクノロジには自動バックアップ削除機能は用意されていませんが、単純なスクリプトを実装してこのタスクを実行できます。

定期的バックアップ削除の設定

次の手順には、次の操作を実行するために必要に応じて使用および編集できる Microsoft Visual Basic サンプル スクリプトが含まれます。

  • 単一のコマンドを使用して、指定した期間より古いバックアップ ファイルを検索し、削除します。

  • バックアップ マニフェスト ファイル (spbrtoc.xml) を更新して、削除されたファイルの記録を削除します。

  • バックアップ削除アクティビティのログ ファイルを作成します。

  • タスク スケジューラと連携して、古くなったバックアップ ファイルの定期的な削除を自動化します。

警告

この記事のコードは、自己責任でご利用ください。

Microsoft は、例示のみを目的としてプログラミング例を提供しており、明示または黙示にかかわらず、いかなる責任も負わないものとします。これには、市販性または特定の目的との適合性についての黙示の保証も含まれますが、これに限定はされません。この記事は、説明されているプログラミング言語、手順を作成およびデバッグするために使用されているツールに読者が精通していることを前提にしています。Microsoft のサポート エンジニアが、特定の手順の機能をわかりやすく説明します。ただし、エンジニアは、追加機能を提供するためにこれらの例を編集したり、特定の要件を満たすための手順を構築することはありません。

プログラミングの経験が限られている場合は、Microsoft 認定パートナーまたは Microsoft 有償電話サポートに連絡することを検討してください。Microsoft 認定パートナーの詳細については、Microsoft パートナー プログラムの Web サイト (https://go.microsoft.com/fwlink/?linkid=128105&clcid=0x411) を参照してください。
使用可能なサポート オプションの詳細、および Microsoft への連絡方法については、Microsoft のヘルプとサポートの Web サイト (英語) (https://go.microsoft.com/fwlink/?linkid=128109&clcid=0x411) を参照してください。

このタスクを実行するには、以下のものが必要です。

  • Microsoft Visual Studio 2008 (推奨) などのスクリプト エディタとデバッガ、またはメモ帳などのテキスト エディタ。

  • スクリプト言語の使用経験。

  • バックアップ ファイルは、ネットワーク上でアクセスでき、運用できるデバイスに保存する必要があります。

  • バックアップ ファイルを保存される期間の長さを指定する明確なバックアップ保持ポリシー。

重要

次の手順を実行するには、少なくともローカル コンピュータの Administrators グループのメンバである必要があります。

バックアップを削除するためのスクリプトの作成

  1. バックアップ削除タスクを実行するコンピュータ上にフォルダを作成します。このフォルダには、バックアップ削除スクリプトとログ ファイルが含まれます。

  2. スクリプト エディタを起動し、次のコード例をコピーして編集用ウィンドウに貼り付けます。

    '       Title: BackupCleanUp
    ' Description: Deletes SharePoint 2007 backups older than a specified 
    '              number of days and removes them from the backup history. 
    
    Dim nNumberOfDays
    Dim strTOCFile
    Dim dtDeleteDate
    
    Set objXML = CreateObject("Microsoft.XMLDOM")
    Set objFS  = CreateObject("Scripting.FileSystemObject")
    Set objLog = objFS.OpenTextFile("BackupCleanUp.log",8,true)
    
    ' Validate Command Line Arguments and Initialize Data
    If WScript.Arguments.Count = 2 Then
        If IsNumeric(WScript.Arguments(0)) Then   
            nNumberOfDays = CInt(WScript.Arguments(0))
            dtDeleteDate = DateAdd("d",nNumberOfDays*-1,Now)
        Else
            WScript.Echo "<NumberOfDays> must be an integer value."
        End If
            strTOCFile = WScript.Arguments(1)
    Else
        WScript.Echo "Usage: BackupCleanUp <NumberOfDays> <PathToTOC>"
        WScript.Quit
    End If
    
    objLog.WriteLine(Now() &vbTab& "Start: Clean up backups older than " &nNumberOfDays& " days from " &strTOCFile& ".")
    
    ' Load SharePoint Backup and Restore TOC File
    objXML.Async = false
    objXML.Load(strTOCFile)
    
    If objXML.ParseError.ErrorCode <> 0 Then
        objLog.WriteLine(Now() &vbTab& "Error: Could not load the SharePoint Backup / Restore History." &vbCrLf&_
                         Now() &vbTab& "Reason: " &objXML.ParseError.Reason& ".") 
        WScript.Quit
    End If
    
    ' Delete Backup Nodes Older Than Deletion Date
    For Each objNode in objXML.DocumentElement.ChildNodes
        If CDate(objNode.SelectSingleNode("SPFinishTime").Text) < dtDeleteDate Then
            If objNode.SelectSingleNode("SPIsBackup").Text = "True" Then
                objFS.DeleteFolder(objNode.SelectSingleNode("SPBackupDirectory").Text)
                objLog.WriteLine(Now() &vbTab& "Deleted: " &objNode.SelectSingleNode("SPBackupDirectory").Text& ".")
                objXML.DocumentElement.RemoveChild(objNode)
            End If     
        End If
    Next
    
    ' Save XML File With Old Nodes Removed
    objXML.Save(strTOCFile)
    objLog.WriteLine(Now() &vbTab& "Finish: Completed backup clean up.")
    

    必要に応じて、ネットワーク、装置、保持ポリシー、またはサービス契約の要件を満たすようにスクリプトを編集できます。

  3. 事前に作成したフォルダに BackUpCleanUp.vbs という名前でファイルを保存します。

重要

次の手順を実行するには、少なくともローカル コンピュータの Administrators グループのメンバである必要があります。

バックアップ削除スクリプトの実行

  1. コマンド プロンプトで、BackUpCleanUp.vbs ファイルを含むディレクトリに移動します。

  2. 以下のコマンドを入力して Enter キーを押します。

    Cscript.exe BackUpCleanUp.vbs <Number of days> <\\サーバー名\フォルダ名>

    ここで、<Number of days> はバックアップ ファイルを保持する最長期間を示し (これより古いバックアップ ファイルは BackUpCleanUp スクリプトによって削除されます)、<\\サーバー名\フォルダ名> は spbrtoc.xml バックアップ マニフェスト ファイルのパスを示します。

  3. バックアップ ファイルの削除プロセスのトラブルシューティングまたは進捗の確認を行うには、同じフォルダ内に配置されている BackUpCleanUp.log ファイルを開きます。

重要

次の手順を実行するには、少なくともローカル コンピュータの Administrators グループのメンバである必要があります。

バックアップ削除のスケジュールまたは延期

  1. スケジュールされたタスク ウィザードを起動し、[スケジュールされたタスクの追加] をダブルクリックしてから、[次へ] をクリックします。

  2. [参照] をクリックし、%ROOT%\WINNT\System32\cscript.exe に移動してから、[開く] をクリックします。

  3. タスクの名前 (BackUpCleanUp など) を入力します。

  4. このバックアップを定期的に自動実行するには、[週単位]、[月単位] など、間隔を選択してから、[次へ] をクリックします。このバックアップを 1 回実行するには、または単一のバックアップを延期するには、[1 回のみ] を選択します。

  5. タスクの時刻を開始日を選択し、[次へ] をクリックします。

  6. 適切なボックスにユーザー名とパスワードを入力し、パスワードを確認してから、[次へ] をクリックします。このタスクは、そのユーザーによって起動されているかのように実行されます。

  7. [[完了] をクリックしたときに詳細プロパティを開く] を選択し、[完了] をクリックします。

  8. [詳細プロパティ] ダイアログ ボックスの [タスク] タブで、[実行するファイル名] ボックスに次のコマンドを入力します。

    Cscript.exe BackUpCleanUp.vbs <Number of days> <\\サーバー名\フォルダ名>

    ここで、<Number of days> は、バックアップ ファイルを保持する最長期間を示し (これより古いバックアップ ファイルは BackUpCleanUp スクリプトによって削除されます)、<\\サーバー名\フォルダ名> は spbrtoc.xml バックアップ マニフェスト ファイルのパスを示します。

  9. [開始] ボックスに、BackUpCleanUp.vbs ファイルが配置されているフォルダのパスを入力します。

  10. [実行する (スケジュールされたタスクは指定の時間に実行されます)] を選択し、[ログオンしている場合にのみ実行する ([実行する] がオンになっている場合)] チェック ボックスをオフにします。

  11. [OK] をクリックします。

関連項目

概念

コンテンツの保護と復旧 (Windows SharePoint Services 3.0)
バックアップと復元のパフォーマンスの向上に関するヒント (Windows SharePoint Services)
Windows SharePoint Services 3.0 テクノロジのバックアップと復旧を管理する
組み込みツールを使用して Web アプリケーションをバックアップおよび復元する (Windows SharePoint Services 3.0)
組み込みツールを使用してサイト コレクションをバックアップおよび復元する (Windows SharePoint Services 3.0)
コンテンツ データベースをバックアップおよび復元する (Windows SharePoint Services 3.0)
ごみ箱が使用されていない場合のドキュメントの復元 (Windows SharePoint Services 3.0)
DPM を使用してアイテムをバックアップおよび復元する (Windows SharePoint Services 3.0)
DPM を使用してサイトをバックアップおよび復元する (Windows SharePoint Services 3.0)
サイト オブジェクトをバックアップおよび復元する (Windows SharePoint Services)
ログをバックアップする (Windows SharePoint Services 3.0)