ちょっとした小ネタ

調査

見知らぬマシンや、セットアップしてから相当の時間が経って中を忘れたサーバの 面倒を見ろと言われたら、まずはいろいろと調べるだろう。 よく使うものをリストしておく。

ハードウェア

# lsmcode -r -d sys0          システムマシンコードの確認

# lscfg                       ハード構成の概要
# lscfg -vp | more            ハード構成の詳細(冗長)

# lsdev -C -F 'name class location physloc'
                              各デバイスの OS からの認識情報

# lsdev -C | grep proc        プロセッサの数
# lsattr -E -l proc0          0 番プロセッサの情報

# lsattr -E -l mem0           物理メモリの情報

# lspv                        物理ディスクドライブの情報
# lsdev -C | grep hdisk       ディスクの数
# lsattr -E -l hdisk0         ディスクの情報

# lsps -a                     スワップの設定情報
# lsps -s                     スワップの状況

# lsslot -c pci               pci にぶら下がるドロワの状態

OS そのもの

# oslevel
# oslevel -r
# oslevel -s   (5.3 以降?)

# bootinfo -K

# alog -o -t boot
# alog -o -t console

ディスク関連

# lspv                                           pv の一覧表示
# lspv hdisk0                                    pv の情報表示
# lspv -l hdisk0                                 pv の詳細表示

# lsvg                                           vg の一覧
# lsvg -o                                        掴んでいる vg の一覧
# lsvg -p rootvg                                 vg 内の pv の一覧
# lsvg -l rootvg                                 vg 内の lv の一覧

# lsps -s                                        paging の合計表示
# lsps -a                                        paging の個別表示

# sysdumpdev -l                                  ダンプデバイス表示
# sysdumpdev -e                                  ダンプデバイス容量見積り
# mklv -y sysdump00 -t sysdump rootvg 8 hdisk0   ダンプデバイス作成
# sysdumpdev -P -p /dev/sysdump00                プライマリダンプデバイスの設定
# sysdumpdev -P -p /dev/sysdumpnull              プライマリダンプデバイスの解除
# sysdumpdev -P -s /dev/sysdump01                セカンダリダンプデバイスの設定
# sysdumpdev -P -s /dev/sysdumpnull              セカンダリダンプデバイスの解除

# bootlist -o -m normal                          起動ディスクの確認
# bootlist -m normal hdisk0                      起動ディスクの設定
# bootlist -m normal hdisk0 hdisk1               起動ディスクの設定

チェックサム

AIX 5.1 〜 5.2 では cksum コマンドが、 AIX 5.3 では cksum に加えて md5sum コマンドが使える。

パスワード変更

AIX では、あるユーザのパスワードが最後に変更されたのはいつか? が /etc/security/passwd に記録されている。

この記録は、直接ファイルを見てもよいのだが、pwdadm コマンドで 取り出すことができる。

# pwdadm -q root
root:
        lastupdate = 1194587992

記録されている時刻は epoch からの通算秒数なので、読みやすくするには 適宜変換が必要であろう。以下にスクリプト例を示す。

TZ=JST-9
export TZ
cat /etc/passwd | awk -F":" '{print $1}' | while read user
do
  t=`pwdadm -q $user | grep lastupdate | awk '{print $NF}'`
  if [ "$t" = "" ]; then
    t=0
  fi
  perl -e '
  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($ARGV[0]);
  $year+=1900;
  $mon+=1;
  printf("%4d.%02s.%02s %02d:%02d:%02d %s\n",
    $year, $mon, $mday, $hour, $min, $sec, $ARGV[1]);' $t $user
done

このスクリプトは、/etc/passwd を読んで、すべてのユーザについて pwdadm コマンドを発行し、パスワードの最終更新がいつであったかを 日本時間で表示する。

システムアカウントなど、いちどもパスワードを変更していないユーザは そもそも /etc/security/passwd に記録がなく (記録のしようがなく)、 lastupdate フィールドに何も報告されない。

C コンパイラ

C コンパイラのバージョンは、lslpp で調べる。 IBM 純正のコンパイラは Visual Age C なので、vac でひく。 C++ は xlC だ。

# lslpp -hac | grep vac.C

または

# lslpp -l vac.C

「-version」とかがあればいいんだが。なかなかややこしい。

その他トリビア

  • IBM C/C++ Enterprise のインストールには、App-Dev が必要。
  • 5.1 には atoll が無い。
  • 5.3 から? mksysb に相当する mkdvd というのがある。
  • savevg は いきなり dvd に書けない。
  • pSeries では POWER6 から、光学ドライブは DVD-RAM が標準。
[$Revision: 1.3 $ $Date: 2011.05.10 15:47:57 $]
[EOF]