AIXとSolarisでカーネルの最終更新日を知りたいです。
Linuxの場合、コマンドは次のようになります。
rpm -qa --last | grep kernel-`uname -r` | sed 's/^k.*\s\s//'
このコマンドに対して次のような結果が得られました。
Wed 29 Nov 2017 03:26:48 PM EST
AIXとSolarisにも同じ代替製品が必要です。
AIXに対してこのコマンドを実行しようとするのに必要なコンプレックスの正しい出力ではありません。
lslpp -ha bos.adt.base | grep COMPLETE | sed 's/^k.*\s\s//'
Return Code: 0, 6.1.1.0 COMMIT COMPLETE 09/16/14 13:49:31
6.1.1.0 APPLY COMPLETE 09/16/14 13:49:31
6.1.8.16 COMMIT COMPLETE 09/16/14 13:59:18
6.1.8.16 APPLY COMPLETE 09/16/14 13:55:32
6.1.9.30 COMMIT COMPLETE 07/02/15 16:36:49
6.1.9.30 APPLY COMPLETE 07/02/15 16:33:22
6.1.9.45 COMMIT COMPLETE 09/04/15 15:45:19
6.1.9.45 APPLY COMPLETE 09/04/15 15:45:09
6.1.9.101 APPLY COMPLETE 09/14/17 16:44:44
6.1.1.0 COMMIT COMPLETE 09/16/14 13:49:36
6.1.1.0 APPLY COMPLETE 09/16/14 13:49:36
6.1.8.16 COMMIT COMPLETE 09/16/14 13:59:18
6.1.8.16 APPLY COMPLETE 09/16/14 13:55:32
6.1.9.30 COMMIT COMPLETE 07/02/15 16:36:49
6.1.9.30 APPLY COMPLETE 07/02/15 16:33:23
6.1.9.45 COMMIT COMPLETE 09/04/15 15:45:19
6.1.9.45 APPLY COMPLETE 09/04/15 15:45:10
6.1.9.101 APPLY COMPLETE 09/14/17 16:44:45
それ以外の場合は、上記の出力の最後の行だけが必要です。
ベストアンサー1
AIX部分の場合、bos.adt.base
ファイル・セットはハードコーディングされず、要件もありません。みんな更新数 - 適用とコミット - コミットだけでなく、/ unixシンボリックリンク(カーネルを指す)を持つファイルセットの記録を要求します。
lslpp -q -c -h -Or $(lslpp -q -c -w /unix | cut -d: -f2) | tail -1 | cut -d: -f7-8
いくつかの部分に分けてみると、次のようになります。
- -q - 列ヘッダーを印刷しません。
- -c - 出力をコロンで区切って印刷します(分析が簡単)。
- -h - ファイルセットの履歴
- -w - 指定されたファイルを所有するファイルセット
r
- または - ここでは oot またはu
sr 操作が 1 つだけ必要です。
内部から作業してファイルセット名を取得し、lslpp ... -w
そのファイルセットの記録を要求し、パイプを介してtail
最後の行(最新行とみなす)を取得し、パイプを介してcut
日付と時刻のフィールドを取得します。 。
Solaris部分の場合、最近適用されたカーネルパッチで十分でしょうか?
nawk -F: '/^PATCH_INFO/ { sub(" From", ""); print $2":"$3":"$4; }' \
/var/sadm/pkg/SUNWckr/pkginfo |
sort -k6n | tail -1