トップページ » Solaris豆知識 » パッチチェックツールでパッチの適用状態を調べる
カテゴリー
My Yahoo!に追加
Sun社提供情報
Solarisパッケージダウンロード
Sunマシンは買うには
blogs.sun.com
お勧めサイト
プライベートリンク

パッチチェックツールでパッチの適用状態を調べる

patchcheck1.2を使用してSolarisのパッチの適用状態を非対話的にチェックしレポートする方法を紹介します。
対話的なチェックであれば Patch Pro で簡単にチェックすることができます。

■ ソフトウェアの入手

 patchcheck1.2をダウンロードします。
patchcheck1.2を正常に動作させるには perl5.0以上が必要です。たぶん標準で入っていると思いますが、ない場合はsunfreeware.comでパッケージを入手してください。

■ インストール(解凍・展開して適当な場所へ配置する)

# uncompress patchcheck_1.2.tar.Z
# tar xvf patchcheck_1.2.tar
x patchcheck_1.2, 0 bytes, 0 テープブロック
x patchcheck_1.2/COPYRIGHT, 8299 bytes, 17 テープブロック
x patchcheck_1.2/patchk.pl, 69755 bytes, 137 テープブロック
x patchcheck_1.2/userguide, 11921 bytes, 24 テープブロック
# mkdir -p /script/patch
# cp -r patchcheck_1.2 /script/patch



■ パッチ情報の入手

 patchk.plスクリプトが参照するために使用する最新のパッチ情報を入手します。管理者が手動で行う場合はこちらのサイトからcross-reference file linkというリンクを右クリックしてリンク先をpatchdiag.xrefというファイル名で保存してください。保存場所はpatchk.plスクリプトと同じディレクトリです。(この例の場合は /script/patch/patchcheck_1.2 ディレクトリ)

 以下の例はcross-referenceファイル(patchdiag.xref)をwgetコマンドで取得しています。
ブラウザを使用せずファイルやアプリケーションを取得することができればパッチのチェックをシェルスクリプトなどで簡単に自動化することができます。ちなみにwgetコマンドはHTTPだけでなくFTP,HTTPSさらにはproxyサーバ経由、ログイン認証等にも対応しているため、インターネット上に置いてあるリソースであればほぼ全てプログラム内で自動的に取得することができます。wgetコマンドはSolaris9からは標準(/usr/sfw/bin/wget)であります。Solaris8以前のバージョンであればsunfreeware.comから入手してインストールしてください。

# /usr/sfw/bin/wget -O /script/patch/patchcheck_1.2/patchdiag.xref 'http://sunsolve.sun.com/pub-cgi/pdownload.pl?target=patchdiag.xref&method=H'

上記コマンドを1行で記述します。-O(オー)オプションで保存するファイル名を指定します。引数のリンク先はブラウザでアクセスする場所と同じものです。

【wgetコマンド実行例】
# /usr/sfw/bin/wget -O /script/patch/patchcheck_1.2/patchdiag.xref 'http://sunsolve.sun.com/pub-cgi/pdownload.pl?target=patchdiag.xref&method=H'
--21:52:27--
http://sunsolve.sun.com/pub-cgi/pdownload.pl?target=patchdiag.xref&method=H
=> `/script/patch/patchcheck_1.2/patchdiag.xref'
jp.sunsolve.sun.com:80 に接続しています... 接続しました!
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1,183,860 [text/plain]

0K .......... .......... .......... .......... .......... 4% @ 32.77KB/s
50K .......... .......... .......... .......... .......... 8% @ 40.98KB/s
100K .......... .......... .......... .......... .......... 12% @ 57.47KB/s
150K .......... .......... .......... .......... .......... 17% @ 61.73KB/s
200K .......... .......... .......... .......... .......... 21% @ 74.63KB/s
250K .......... .......... .......... .......... .......... 25% @ 75.76KB/s
300K .......... .......... .......... .......... .......... 30% @ 61.73KB/s
350K .......... .......... .......... .......... .......... 34% @ 49.02KB/s
400K .......... .......... .......... .......... .......... 38% @ 64.02KB/s
450K .......... .......... .......... .......... .......... 43% @ 51.39KB/s
500K .......... .......... .......... .......... .......... 47% @ 47.35KB/s
550K .......... .......... .......... .......... .......... 51% @ 33.56KB/s
600K .......... .......... .......... .......... .......... 56% @ 55.56KB/s
650K .......... .......... .......... .......... .......... 60% @ 72.46KB/s
700K .......... .......... .......... .......... .......... 64% @ 80.78KB/s
750K .......... .......... .......... .......... .......... 69% @ 52.03KB/s
800K .......... .......... .......... .......... .......... 73% @ 53.71KB/s
850K .......... .......... .......... .......... .......... 77% @ 60.31KB/s
900K .......... .......... .......... .......... .......... 82% @ 71.43KB/s
950K .......... .......... .......... .......... .......... 86% @ 80.78KB/s
1000K .......... .......... .......... .......... .......... 90% @64.77 KB/s
1050K .......... .......... .......... .......... .......... 95% @51.60 KB/s
1100K .......... .......... .......... .......... .......... 99% @89.93 KB/s
1150K ...... 100% @ 679.25 KB/s

21:52:50 (56.56 KB/s) - `/script/patch/patchcheck_1.2/patchdiag.xref'
を保存しました [1183860/1183860]


■ patchcheck1.2動作確認

patchk.plスクリプトを使用してパッチの適用状態を調べます。下記のようにperlで実行しなくてもオーケーです。例えば./patchk.pl みたいに・・・。(内部的にperlが使用されるので)。perlを新規インストールした場合はパスを通しておくのを忘れずに(/usr/local/bin/perlなど)。

# pwd
/script/patch/patchcheck_1.2
# perl patchk.pl
processing...
================================================================
System Name: blade SunOS Vers: 5.9 Arch: sparc
Cross Reference File Date: Sep/22/03
Patch Check Version: 1.1
================================================================
Report Note:

Recommended patches are considered the most important and highly
recommended patches that avoid the most critical system, user, or
security related bugs which have been reported and fixed to date.
A patch not listed on the recommended list does not imply that it
should not be used if needed. Some patches listed in this report
may have certain platform specific or application specific dependencies
and thus may not be applicable to your system. It is important to
carefully review the README file of each patch to fully determine
the applicability of any patch with your system.
================================================================
INSTALLED PATCHES
Patch Installed Latest Synopsis
ID Revision Revision
------ --------- --------
----------------------------------------------------
112233 08 CURRENT SunOS 5.9: Kernel Patch
112617 02 CURRENT CDE 1.5: rpc.cmsd patch
112622 09 CURRENT SunOS 5.9: M64 Graphics Patch
112661 05 CURRENT SunOS 5.9: IIIM and X Input & Output Method patch
112764 02 06 SunOS 5.9: Sun Quad FastEthernet qfe driver
112785 24 CURRENT X11 6.6.1: Xsun patch
...
...
...省略
================================================================
#


これで概ね目標は達成ですが、こんな作業を手動でやってたんじゃPatch Proを使った方がマシなんで、もうちっとスマートに、patchdiag.xref
入手、patchk.plの実行、出力結果のメール転送なんていうのを一連の作業としてスクリプト(patchcheck)にしちゃいましょう。

【patchcheckスクリプトの例】
# cat patchcheck
#!/bin/sh
/usr/sfw/bin/wget -O /script/patch/patchcheck_1.2/patchdiag.xref 'http://
sunsolve.sun.com/pub-cgi/pdownload.pl?target=patchdiag.xref&method=H'> /dev/null 2>&1
/script/patch/patchcheck_1.2/patchk.pl > /script/patch/patchcheck_1.2/patch_report
mailx -s patch_report xxx@yyy.com < /script/patch/patchcheck_1.2/patch_report


なんてことはない、今までの説明をそのまま1つのファイルにまとめただけです。余計な出力を/dev/nullに捨て、パッチの適用状態のレポートを適
当なファイルにリダイレクトし、そのファイルをmailxコマンドで xxx@yyy.com にメールで送ってます。

 こんなスクリプトをcrontabで週1回(下の例は毎週日曜8:00に実行)くらい自動実行しておけばよいのでは? 非常に簡単だけど、なかなかス
マートでしょ。
# crontab -l
...
...
0 8 * * 0 /script/patchcheck

Solaris豆知識のその他のリンク

Solaris系技術トレーニング一覧

Solaris10システム管理基本コース
Solaris10ネットワーク・インターネットサーバー管理コース
セキュリティ・パフォーマンス管理・トラブルシューティング等
Sun Cluster、ボリューム管理ソフトウェア
仮想化技術全般
シンクライアント、SunRay、デスクトップソフトウェア
アイデンティティマネージメントサービス
アプリケーションサーバーとWebポータル
サーバー(ハードウェア)メンテナンス
Sun Java CAPS
MySQL