errptをsyslogに出力

errptの内容をsyslogに出力することで監視方法が容易となる。
1. 現行のerrnotifyのバックアップする。

# odmget errnotify | tee odmget_errnotify_bak.txt

2. 設定項目をテキスト・ファイルで準備する。(※行途中で改行しないこと)

# vi admadd_errnotify_syslog.txt
errnotify:
	en_name = "syslog"
	en_persistenceflg = 1
	en_method = "logger ERRPT: `errpt -l $1 | grep -v 'IDENTIFIER TIMESTAMP'`"

3. 準備したテキスト・ファイルを使って設定する。

odmadd admadd_errnotify_syslog.txt

AIXユーザーのパスワードを一気に設定

AIXユーザーのパスワードを一気に変更する方法。
1. ユーザーとパスワードを「:」区切りでリスト化する。

# vi userpass.txt
userA:passA
userB:passB
userC:passC

2. リストから"chpasswd"に入力する。

# chpasswd < userpass.txt

初回ログイン時にパスワード変更を求められ、完了するまではログインすることが出来ない。変更したくない場合はユーザーごとに以下のコマンドを実行しておく。

# pwdadm -c userA

topasコマンドが使えなくなった

topasコマンドがlockされて使えなくなった場合の対処方法。

1. 以下のプロセスが起動中であれば終了しておく。

    • xmservd
    • filtd
    • xmperf
    • 3dmon
    • ptxrlog
    • harmd
    • topas

2. ipcsコマンドを"-m"で実行する。
3. 共有メモリーの情報から「0x78」から始まるKEYのIDを確認する。

# ipcs -m | grep 0x78
m 2097154 0x78000017 --rw-rw-rw- root system

4. ipcrmコマンドでIDを指定して該当のKEYを削除する。
5. slibcleanを実行する。
6. ipcsコマンドで再確認する。

# ipcrm -m 2097154
# slibclean
# ipcs -m | grep 0x78
(※何も出てこない)

これにてtopasコマンドは使えるはず。

ヒアドキュメント

[AIX5.3][ksh]ヒアドキュメント

pSeries および AIX インフォメーション・センターの「出力をインライン入力 (here) ドキュメントにリダイレクトする」を参照。

下記の1番目と2番目の"eofstring"の間の行をヒアドキュメントと呼ぶそうな。
その行を標準入力として"command"に渡し、それを実行する。"eofstring"は任意の文字列を使用する。

command << eofstring
hogehoge
eofstring

ヒアドキュメントの先頭のタブ文字を省いて"command"に渡したい場合は、「<<」の直後に「-」を付与する。(下記例では全角スペースを入れています。)

command <<- eofstring
    hogehoge
    eofstring

使用例:他サーバーからFTPでファイルを取得する。
(下記例では全角スペースを入れています。)

ftp -n hostname <<- _EOF_
    user USER PASSWORD
    cd /AAA
    lcd /BBB
    prompt off
    bin
    mget *.log
    bye
    _EOF_

オープンしたままのOracleトレースをクローズ

AIXファイルシステムの使用率が高め。しかし実際のファイルで占有しているものは無い。これらの場合は、トレースなどのログが出力中に行き場を失い、ファイルがオープンをしたままの可能性がある。
下記にOracleのトレースファイルで発生したときの対処手順を記す。

# fuser -duxV /logdir
/logdir:
inode=32799 size=782 fd=5 692634(oracle)
inode=28679 size=8093 fd=2 717076(oracle)
inode=28676 size=3819048960 fd=2 102982(oracle)
inode=32799 size=782 fd=5 135698(oracle)
inode=32799 size=782 fd=5 213620(oracle)
inode=32799 size=782 fd=5 229978(oracle)
inode=32799 size=782 fd=5 307944(oracle)

size=3819048960 が大きい。

# su - oracle
# sqlplus / as sysdba
SQL> oradebug setospid 102982

Oracle pid: 3, Unix process pid: 102982, image: oracle@xxxxxxxx (DIAG)
SQL> oradebug close_trace
Statement processed.
SQL> exit