Arcserve UDP v6 新機能紹介 ~ (10) PowerShell を使ったバックアップ/リストアの自動実行 【後編】
こんにちは、ホテです。前回は Windows PowerShell のコンソールでバックアップを実行しました。ただ、コマンドを手入力していたので、これだとGUIでバックアップを実行するのと手間が変わらないです。なので、今回はコマンド入力をスクリプト化して、人がいないときでも自動でバックアップが実行されるようにします。
------------------------------------------------------------
目次:
1) 新バージョンのコンセプトとセミナーのご案内
2) 仮想マシンとして即時復旧 (インスタントVM)
3) Linux エージェントレス バックアップからのファイル リストア
4) Linux エージェントの機能強化
5) キャパシティ プラニング ツールでバックアップ サーバのサイジングをより正確に
6) かさばるデータの保管に使えるファイル コピー機能が進化
7) 管理コンソール初心者のための簡単設定ウィザード
8) Windowsイベント ログへの登録
9) PowerShell を使ったバックアップ/リストアの自動実行 【前編】
10) PowerShell を使ったバックアップ/リストアの自動実行 【後編】 ← 本日はここ
11) テープへの二次バックアップの強化(「テープへのコピー」タスクの追加)
12) その他の新機能と機能改善
------------------------------------------------------------
では、さっそくスクリプトを作っていきたいのですが、その前に何点かチェックするポイントがあります。
■1: まず、実行ポリシーをチェック
ひょっとしたら、前回の記事と同じことをやっても、「ヘルプも見られないし、何も実行できないよ!」という方がいらっしゃるかもしれません。そんな時には以下のコマンドを実行して、スクリプト実行ポリシーがどのように設定されているか確認ください。Windows PowerShell ではセキュリティ確保のため、スクリプトの使用を制限できるようになっています。(詳細は→ Windows PowerShell スクリプトの実行ポリシーの表示)
PS > Get-ExecutionPolicy
で、この結果が「Restricted」とかだと、スクリプトを実行する事が出来ないという事になります。そこで、実行できるようにポリシーを変更します。皆様の所属される組織のセキュリティルールに従い、適切なポリシーを設定してください。以下、設定例です。(参考:Windows PowerShell スクリプトの実行ポリシーの変更)
PS > Set-ExecutionPolicy RemoteSigned
■2: 次に、パスワード ファイルを作っておく
前回の実行例では Arcserve UDP コンソールにログインするユーザーのパスワードをパスワード ファイルを使って指定しました。直接パスワードを入力するオプションもありますが、スクリプト中に平文でパスワードを残しておくのはあり得ないと思いますので、あらかじめ暗号化されたパスワードファイルを作っておいてください。
パスワード ファイルを作成するためのコマンド実行例はこちら↓。スクリプトを実行するユーザーでこのコマンドを実行(※1)します。パスワードは「xxxxxxxx」で、「C:\pass」という名前のパスワードファイルを作っています。
<Arcserve UDP 7.0 以降(※2)>
PS > cd 'C:\Program Files\Arcserve\Unified Data Protection\Management\PowerCLI'
PS > $SecurePassword = Read-Host -AsSecureString (ここで Enter キーを押す)
******** (←パスワードを入力。終わったら Enter キーを押す)
PS > .\UDPPowerCLI.ps1 -Command CreatePswFile -Password $SecurePassword -PasswordFile C:\pass<Arcserve UDP v6.x>
PS > cd 'C:\Program Files\Arcserve\Unified Data Protection\Management\PowerCLI'
PS > .\UDPPowerCLI.ps1 -Command CreatePswFile -Password xxxxxxxx -PasswordFile C:\pass
■3: いよいよスクリプトを作る
といっても、特別難しい事はなく、メモ帳を開いて、前回手作業で入力したコマンドを書くだけです。以下はサンプルです。
1: cd ‘C:\Program Files\arcserve\Unified Data Protection\management\PowerCLI’
2: .\UDPPowerCLI.ps1 -Command Backup -UDPConsoleServerName UDPv6 -UDPConsoleProtocol https -UDPConsolePort 8015 -UDPConsoleUserName administrator -UDPConsolePasswordFile C:\pass -planName 'Windowsサーバ' -BackupJobType Incr
※ 左端の数字は行数です。スクリプト作成時は無視してください。
書いたら、拡張子を「.ps1」にして PowerShell Script ファイルとして保存してください。
■4: スクリプトを外部から実行する
作ったファイルをさっそく実行してみたいところですが、batファイルのようにダブルクリックしてもメモ帳で開かれるだけでなにも起こりません。PowerShell はセキュリティ上の目的で、ダブル クリックでは実行できないようになっているんです。そこで、実行するときには以下のように Windows PowerShell にスクリプトファイルのパスを渡す必要があります。
例として、Windows タスク スケジューラでスクリプトを実行するときの設定はこんな感じ。[プログラム/スクリプト]にはWindows PowerShell の実行ファイルである「Powershell.exe」を指定します。で、今回作ったスクリプトは[引数の追加]の方で指定します。
今回はWindows タスク スケジューラを使用しましたが、他のジョブ管理ツールで実行する際も同じように設定します。
以上、2回に分けて Arcserve UDP のコマンドライン インターフェース をご紹介しました。実は、サポートの公式ページにも詳細がまとめられています。この機能を使う方はぜひこちらもご覧ください。
arcserve-KB : PowerShell を使用した Arcserve UDP v6.0 ノードのバックアップ方法
arcserve-KB : UDPPowerCLI コマンドの戻り値について
※1 DPAPI という API を使ってパスワードを暗号化しているため、暗号化時のユーザーでなければパスワードを復号できません。例えばタスク スケジューラーで SYSTEM アカウントを使ってスクリプトを実行させたい、という場合は注意が必要です。
※2 Arcserve UDP 7.0 以降ではパスワードファイルの作成方法が v6.x から若干変わりました。
Arcserve UDP 7.0 における PowerShell 利用時のパスワード設定方法
« Arcserve Backup のトライアル版(試用版)入手方法 | トップページ | 1分でわかる!Arcserve UDP 新バージョン "v6"の実力 第10回 ~ この人のメールだけ戻したい! »
「技術情報」カテゴリの記事
- 実はランサムウェア対策にも有用?! 仮想スタンバイって凄い!(2024.09.06)
- Arcserve RHA での 「圧縮転送」 と 「圧縮属性のレプリケート」(2024.07.26)
- Arcserve RHA : XML 形式で取り出したレポート ファイルを Microsoft Edge で見る方法(2024.04.26)
- 超人気コンテンツの動画公開!! 「Arcserve UDP」と「Arcserve Backup」の違い(2024.01.12)
- Arcserve Backup チューンナップ/設定 シリーズ: テープバックアップのパフォーマンス向上(2023.10.27)
「Arcserve UDP」カテゴリの記事
コメント
« Arcserve Backup のトライアル版(試用版)入手方法 | トップページ | 1分でわかる!Arcserve UDP 新バージョン "v6"の実力 第10回 ~ この人のメールだけ戻したい! »
powershellを使用したコマンドラインでのバックアッププランの実行について質問です。
以下のようなプランでバックアップを構成しようとしています。
タスク1:エージェントレスバックアップでHyper-Vゲストを取得(毎日増分バックアップ)
タスク2:タスク1で取得したバックアップをテープにコピー(タスク1完了後に自動で開始)
UDPコンソールからのスケジュール実行は問題なく動作しております。
最終的には、UDPからのスケジュール実行ではなく、powershellスクリプトを使用した外部スケジューラ
からの実行を実現したく考えております。
しかし、テープへのコピーの実行条件として、タスク1での日次/週次/月次のバックアップしかコピーを実行しないのですが、
powershellより実行するとカスタム/手動としてのバックアップとなってしまい、連動した動作がとれません。
このような構成でバックアップを実現する方法はございますでしょうか。
投稿: tk | 2016年9月 5日 (月) 13時31分
tk様
コメントをいただきましてありがとうございます。
ホテと申します。
Arcserve UDP v6 では PowerShell を使ったバックアップはカスタム/手動になる仕様で、
また、テープ コピー タスクのソースでカスタム/手動を選択する事はできません。
そのため、外部スケジューラで一次バックアップから二次バックアップまでを行うには、
テープ コピー タスクを使わず、従来通りの方法で Arcserve Backup と Arcserve UDP を連携させます。
------------------------------------------------------------
Arcserve UDP 機能紹介 ~ (9) イメージバックアップのテープ保管 ~
https://arcserve.txt-nifty.com/blog/2015/03/arcserve-udp-9-.html
------------------------------------------------------------
上の記事にあるように、Arcserve Backup の画面で
Arcserve UDP のバックアップ データを二次バックアップのソースとして選択したジョブを作成します。
その上で Arcserve Backup の二次バックアップ ジョブをジョブ スクリプト化させ、
Arcserve UDP の一次バックアップが終わったタイミングで外部スケジューラから実行させます。
投稿: ホテ | 2016年9月 6日 (火) 21時48分
こんにちは。
屋上屋を重ねる部分がありますが、PowerCLIをwrapして各種ログ等を出力できる様にしてみました。
https://github.com/7k2mpa/FileMaintenace
同梱のCommonFunctions.ps1が必要です。
複数バックアップを順次実行するには同梱のWrapper.ps1が便利です。
それでは。
投稿: doctor_d | 2020年2月14日 (金) 12時38分
doctor_d 様
こんにちは。
素敵なスクリプトを共有いただきありがとうございます!
投稿: ホテ | 2020年2月14日 (金) 19時01分