2015年3月4日水曜日

Windows Server 2003のタスクをA-AUTO 50に移行してみる

こんにちは。井下です。

今回は先月ダウンロード提供を開始した「タスクスケジューラ変換ツール」に関して書きます。

何故、「タスクスケジューラ変換ツール」を作成したか?
「タスクスケジューラ変換ツール」を作成した理由を説明する前に、2015年の7月にWindows Server 2003のサポート期限が切れてしまうことは、システムを運用されている方にとっては頭を悩ませている問題ではないでしょうか?

移行にかかる工数は大きいものですし、移行による問題も発生しやすいという課題がありますが、システムの構成や利用方法について見直せる機会でもあると思います。

今回、移行対象とするタスクスケジューラを利用しているリスクとしては、次のようなリスクが挙げられます。
  • 時間指定でジョブを実行するため、業務の追い越しが発生する
  • 証跡ログが取れない
  • ジョブで異常が発生したとき、異常検知が遅れてしまう

ただ、これらのリスクの解消のためにタスクスケジューラからジョブ管理ツールへ乗り換えようとしても、移行にかかる工数が大きく、そのままタスクスケジューラを使い続けてしてしまうのではと考え、可能な限り移行の工数を減らせるよう、「タスクスケジューラ変換ツール」のダウンロード提供を開始しました。


「タスクスケジューラ変換ツール」の使い方
実際にこのツールを使い、Windows Server 2003のタスクをA-AUTO 50に移行してみます。
移行してみるタスクは、以下の2パターンです。
  1. 一般的に利用されているシンプルな設定のパターン
  2. ストレートコンバージョンできない設定のパターン

1.一般的に利用されているシンプルな設定のパターン
まず、タスクスケジューラでは以下のように登録がされています。
簡単に登録されている内容を説明すると、「毎週金曜日」の「21:00」に「C:\backup_weekly.bat」を実行するタスクです。


このタスクを下記のように「タスクスケジューラ変換ツール」を使用して、A-AUTO 50へ移行できるデータへ変換します。

「タスクスケジューラ変換ツール」はコマンドプロンプトからタスク名などのパラメータを指定して実行します。


最後に「rc = 0」が出力されていますが、これはワーニング・エラーなしで終了したことを示します。

これでA-AUTO 50へ移行できるデータが出力されました!


後は「タスクスケジューラ変換ツール」で出力したcsvファイルを入力に、別途提供するmastercsvユーティリティを利用して、A-AUTO 50へ移行します。


こちらも「RC = 0」と出力されているので、問題なく終了しています。
これで移行が完了しましたので、A-AUTO 50のマスタを確認してみましょう。

まずはジョブの実行条件を指定するネットワークマスタを確認します。

赤線で囲まれたものが、タスクスケジューラから移行したタスクです。
ここでネットワークIDが「BKWEEK」となっていますが、この値は「タスクスケジューラ変換ツール」の
実行時に指定する「aid」パラメータによって、任意の値に設定することができます。

ネットワークマスタ画面

「BKWEEK」の設定を見てみると、スタート時刻という項目が「21:00」になっていますが、これはタスクスケジューラでいう開始時刻の設定になります。

ネットワーク編集画面

タスクスケジューラからA-AUTO 50に移行すると、ネットワークマスタ以外にスケジュールマスタ、拡張ジョブマスタの計3つのマスタにデータが登録されます。
スケジュールマスタには「毎週金曜日」に実行する設定が反映され、拡張ジョブマスタには実際に実行するバッチファイル(C:\backup_weekly.bat)の設定が反映されています。

スケジュール編集画面

拡張ジョブ編集画面


最後に、ジョブをいつ実行するのかを表示するネットワークスケジュールを確認してみます。

ネットワークスケジュール画面

タスクスケジューラのタスクから移行したジョブ「BKWEEK」が、毎週金曜日に実行予定になっています。

これで、タスクスケジューラのタスクをA-AUTO 50へと移行する作業が完了しました!


2.ストレートコンバージョンできない設定のパターン
タスクスケジューラとA-AUTO 50では機能面での非互換や、設定できる値の境界値が異なるものがあるため、ストレートコンバージョンできない場合があります。
そうした場合、「タスクスケジューラ変換ツール」ではワーニングメッセージを出力し、そのまま移行できない項目を分かるようにします。

そうしたケースでの対処方法を含めて、移行作業を行ってみます。

タスクスケジューラでは以下のように登録がされています。
登録されている内容は、「毎月の20日」の「0:00」に「C:\backup_monthly.bat」を実行するタスクです。
また、タスク名が23文字と前述の例に比べるとやや長くなっています。



このタスクを「タスクスケジューラ変換ツール」で、A-AUTOで移行可能なデータに変換しようとすると…



最後に「rc = 4」が出力されました。エラーやワーニングなどが含まれている状態で終了すると、「rc = x」の「x」部分に0以外が表示されます。
また、黄線に囲われた部分がストレートコンバージョンできなかった設定箇所を示しています。

なお、今回発生したワーニングは2つあり、ワーニングメッセージによると
  1. 移行先のA-AUTO 50の設定に対し、タスク名が長すぎるため、一定の長さにカットしたものとしてデータを出力した
  2. A-AUTO 50では開始時間に「0:00」を指定できないため、「0:01」に自動変換したものとしてデータを出力した
ことを示しています。

なお、1のワーニングに対する対処方法ですが、データの移行先設定をドキュメント情報にすることで、50バイトまでであればそのまま移行することができます。(ツール実行時のパラメータで設定できます)

今回のワーニングをまとめると、タスク名の欠落してしまうことと、起動時刻が1分ずれるということなので、問題がないと判断し、A-AUTO 50への移行を続行します。


後は「タスクスケジューラ変換ツール」で出力したcsvファイルと、mastercsvユーティリティを利用してA-AUTO 50へ移行します。

では、ネットワークマスタから確認してみます。

ネットワークマスタ画面

「BKMON」というネットワークIDで新たなネットワークが追加されています。
「ネットワーク略称」という設定にタスクスケジューラのタスク名を移行しようとしたのですが、「ネットワーク略称」の長さ制限上、カットされたタスクスケジューラのタスク名が移行されています。

「BKMON」の設定を見てみると、スタート時刻がワーニングメッセージ通り、「0:00」から「0:01」に変換されていることが分かります。
また、先述したようにタスク名をドキュメント情報へ移行するように指定すれば、50バイトまでは欠落なくドキュメント情報に移行することができます。

ネットワーク編集画面

それ以外の設定に関しては、タスクスケジューラの設定をA-AUTO 50が対応する設定に移行できています。
スケジュールマスタ、拡張ジョブマスタを見ても、データの変換・カットはされていません。

スケジュール編集画面

拡張ジョブマスタ編集画面

ネットワークスケジュールを確認すると、「BKMON」が20日に実行される予定になっています。

ネットワークスケジュール画面


一部そのまま移行できない設定がありましたが、タスクスケジューラからA-AUTO 50へ移行することができました。

また、今回は単独で実行するバッチファイルの例を挙げましたが、A-AUTO 50移行後に複数のバッチファイルで実行順序を設定することもできます。


おわりに
タスクスケジューラとA-AUTO 50の非互換の部分は今回の例で挙げた部分以外にもありますが、レアなケースが多いと考えます。
もちろん、非互換の部分があった場合は、ワーニングメッセージで表示していますし、ツールに同梱のガイドにて、どの設定が非互換であるかを網羅しています。

Windows Server 2003のサポート切れを機会として、今回のA-AUTO 50に限らずリスクの見直しを行ってみてはいかがでしょうか?

「タスクスケジューラ変換ツール」は下記のURLから無料でダウンロードできますので、ご興味のある方は、ダウンロードして一度ご利用ください。

https://a-auto50.unirita.co.jp/downloads/

※次回は前回のFusion Tables関連の話の続きを書く予定です

0 件のコメント:

コメントを投稿