[Sitecore][Script]素早くサイトファイルをバックアップ
概要:
日々ウィブサイトがAzureへ移行している日々、従来各自のサーバーにて使うお客さんもいます。
サーバーの数によって、デプロイメントする際にウェブサイトをバックアップするのは一般的です。
バックアップに関するツールはたくさんありますが、簡単なバックアップスクリプトをメモ書きとして書きます。
[space size=”10″]
きっかけ:
デプロイメントをする方がいちいち、ターゲットサーバーへ行き、日付を使ってバックアップのフォルダを作成します。
そして、Websiteフォルダを手動でコピーします。その際に、App_dataとtempフォルダを除きます。
この手順をそれぞれのサーバーで行います。それを見て、PowershellのScriptを書いて、
クリックするだけでやればいいじゃないの聞いたら、スクリプトを書いてくれとといわれた。
[space size=”10″]
スクリプト:
$src = Read-Host -Prompt 'ソースパスを入力してください:(ディフォルト:C:\inetpub\wwwroot\Sitecore\Website\)' $dst = Read-Host -Prompt 'バックアップされるドライブを入力してください:(ディフォルトは:D:\)' #ディフォルトのソースパスを設定 if($null -eq $src) { $src = "C:\inetpub\wwwroot\SC9.local\Website\xsl\system\WebEdit"; } #今日の日付を使ってバックアップフォルダを作成 $today = get-date -f yyyy-MM-dd; if($null -eq $dst) { $dst += [string]::Format(“D:\{0}_backup\”,$today); } else { $dst += [string]::Format(“:\{0}_backup\”,$today); } Write-Host "`r`n *下記の設定が正しいかどうかを確認してください:" -ForegroundColor Cyan Write-Host " app_data とtemp フォルダをのぞいて、すべてのファイルをバックアップします。`r`n" -ForegroundColor Cyan Write-Host " ソースパス:"$src -ForegroundColor Yellow Write-Host " バックアップ先:"$dst"`r`n" -ForegroundColor DarkGreen $confirm = Read-Host -Prompt '上記の設定がただしいければ、y を入力してください' if($confirm -eq "y") { Write-Host "`r`nバックアップ先フォルダ($dst)を確認中..."; if(!(Test-Path -Path $dst )){ New-Item -ItemType directory -Path $dst Write-Host "`r`nフォルダが作成されました。バックアップ開始..." -NoNewline; } else { Write-Host "フォルダが見つかりました。バックアップ開始..." -NoNewline; } Get-ChildItem -Path $src | % { Copy-Item $_.fullname "$dst" -Recurse -Force -Exclude @("App_Data", "temp") } Write-Host " 完了しました。" -ForegroundColor Green; } else { Write-Host "最初から始めてください." }
[space size=”10″]
実行する:
パラメータを読み取るようにしていますが、スケジュールで実行する場合は環境別の設定ファイルを作ればいい。
[space size=”10″]
ついでに、Powershellエディタの話ですが、もうすでに使っているかと思いますが、私のお気に入りのPowershellエディタはPowerShell Studio 2019とVisual Studio Codeになります。両方好きです。
[space size=”10″]
[space size=”10″]
PowerShell の機能に関して、両方とも似たような機能で、両方ともよく使う機能を備えています。PowerShell Studio 2019の方がシンプルですですが、ただ無料ではない。私のお気に入りの機能は関数一覧のウィンドウです。関数のライブラリーを作成する際に便利です。[space size=”10″]
Visual Studio Codeの方がPowershellだけではなく、沢山の言語をサポートしているので、また無料なので、もっと人気があります。長いスクリプトの作業をする際にVisual Studio Codeの方が好みます。VSように、使い慣れているファイルのクイックナビゲーションウィンドウが便利です。