2017年12月07日

aixでモジュールが32bitか64bitか判別する方法

linuxとかだとfileコマンドでいいんだが、AIXではRS600の実行モジュールだ!ドヤァ としか出てくれないので、
dumpコマンドを使う。

dump -ov ファイル でMagicのところを確認する。
64bitの場合は dump-ovx64  とやるみたい。
間違っている場合はエラーが出るので、どっちでもいいわけかな。




posted by koteitan at 15:31| Comment(0) | aix | このブログの読者になる | 更新情報をチェックする

2016年09月10日

tarファイルのパーミッションについて

一般ユーザーは考えなくてよい問題で
スーパーユーザーの場合は、デフォルトでpオプションが付く。
これによりUID、GIDが保存され、展開したときに元のUID,GIDを回復できるという
わけだが、例えば同じユーザー名だがUIDが異なる場合などの動きは
いろいろある模様。

GUNtarにはこういった場合にユーザー名に追随するのか、UIDを使うのかを
制御するオプションがあるようだが、AIXのマニュアルには見当たらないな。

動きを見てみる限りでは、追随する(-n無し)ようだが。
tar.png

(cf)
http://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=tar%A4%CE%A5%AA%A1%BC%A5%CA%A1%BC%A1%A2%A5%D1%A1%BC%A5%DF%A5%C3%A5%B7%A5%E7%A5%F3%A4%CE%B0%DD%BB%FD%A4%CB%A4%C4%A4%A4%A4%C6
http://blog.xe.bz/archives/51645042.html
http://www.gnu.org/software/tar/manual/html_node/Attributes.html

posted by koteitan at 11:59| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2016年09月04日

procfiles

AIXでプロセスがオープンしているファイルについて調べたい場合は
procfilesというコマンドで行う。

procfiles -n [PID]

別に/procのfdの数を数えてもいいしsystemdumpからもわかるから
発生している問題の状況を見極めて適切なものを選ぼう。

まぁ、それが難しいんだけどねぇ。

cf
http://www.ibm.com/support/knowledgecenter/ssw_aix_72/com.ibm.aix.cmds4/procfiles.htm
posted by koteitan at 18:52| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2014年06月11日

[AIX]coreファイルの出力先変更について

オッサンはsyscorepathをinittabに入れる
→ syscorepathは恒久変更じゃないから
 確認方法 はsyscorepath -g

最近の人はchcoreを使う。
確認は chcore -l

infocenterのリンクは貼っても古くなるのでコマンドでgoogleしてくだされ。
posted by koteitan at 18:23| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2013年05月27日

[AIX]Who's using my port?

Tecnoteが更新されていた。lsofを使う普通の表記になっちゃってて
結局ファイルセット入ってないとわからんのかーい(;´Д`)と。
bos.netとかに取り込んだらええのにな。

本家を見に行くとわかるのだが、昔はrmsockで削除を試みて(使用中だから消せない)
そのメッセージからつかんでいるプロセスを特定しようというなかなかワイルドなやり方だった。
どうやら、その方法には問題があるのでlsofの表現のに替えたよ、てことなのかな。

Who's using my port? (AIX, Linux, Windows example)
http://www-01.ibm.com/support/docview.wss?uid=swg21264632
Please note that this technote previously illustrated the use of rmsock command. However, a recent discovery revealed that rmsock command may exhibit an unstable behaviour. Hence, it was removed from this technote. We apologize for the inconvenience this has caused.

以前のやり方は

netstat -Aan | grep ポート番号

でソケットアドレスを取り出して

rmsock ソケットアドレス tcpcb
The socket 0xXXXXXXXX is being held by proccess YYYYYY (ZZZZZZ).

というエラーメッセージから判断するという杉ちゃんもビックリなワイルドな方法であったのだよ。
公式ページに記載あるようにこのやり方はソケットの状態が不安定になる危険があるため
推奨されないし、やっちゃダメ。lsofをちゃんと導入時にインストールしておこう。
posted by koteitan at 17:01| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2011年09月01日

[AIX] AIXのdateコマンドが化石な件について

一体いつになったら、linuxとかGNU相当の機能になるのか。
kshで凝った処理をつくるなよwってことなのか。

似たようなことを調べた方のために、また備忘録としてメモしておこう。

「AIXのkshでエポック時間(所謂UNIX時間)を取得」

・現在時刻の場合
  date '%s'
・指定時刻の場合
  date +%s -d '2011-09-01 17:20:00'
甘い、甘いんだよ明智くん。
  GNUな機能は無いんだよ。date --date yesterdayも無いんだぜ?
  
  で、どうするか、というか自力しかない。
  この時代に車輪の再開発。信じられない。
  以下に式は載っているので気が向いた方はどうぞ。
  http://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap04.html#tag_04_14
  
  で、別の方法となるともう別の言語に頼るしかない。
  一番簡単なのはPerl one'Liner
  EP_TIME=`echo $hoge | perl -MTime::Local -ne '$date="$_";my($year,$mon,$day, $hour, $min, $sec) =($date =~ /(\d{4})\/(\d\d)\/(\d\d)(\d\d):(\d\d):(\d\d)/);printf(timelocal($sec,$min,$hour,$day,$mon-1,$year));'`

  コンパイラがあるなら、Cでもjavaでもなんでもやってくれ。

  この手のしょーもないので止まったときって、モチベーションすごい下がるよね。
  ┐(´д`)┌ ハイハイ
  
検索用キーワード AIX、エポック時間、UNIX時間、date、ksh、取得、指定日付
posted by koteitan at 17:31| Comment(1) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2010年09月03日

fwtmpのミカタ

7がログイン
8がログアウト
6がログイン待機中

こんだけ覚えておけばまぁ大丈夫じゃろ。
posted by koteitan at 15:06| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2010年07月29日

[AIX]tickadj or tick unknown, exiting

(゚Д゚ )ムハァ

表題の様なエラーが出て、ntpdが起動しない時の理由と対応と分析

tickadj はtick(タイマ割り込み)のズレを補正するようなパラメータ
くわしくはググレカスだ。

NTPのソースをググレカスして眺めてみると


/*
* If tickadj or hz wasn't found, we're doomed. If hz is
* unreasonably small, forget it.
*/
if (tickadj == 0 || tick == 0) {
syslog(LOG_ERR, "tickadj or tick unknown, exiting");
exit(3);
}

こんな記述があるからまぁ、間違いないだろう。
tickadj の取得部分も眺めてみるとkで始まる関数や変数に
やたらとアクセスしてるから、カーネルパラメータってのも間違いなさそう。

エラーメッセージで事例を探すとこのスレがほぼビンゴだろう
http://www.ibm.com/developerworks/forums/thread.jspa?threadID=192280

ここにあるように
bosboot -ad /dev/ipldevice してrebootすれば治るわけだが
その理由は最後のレスで
ファイルセット更新したのにオラリブートしてないや
HAHAHAHA! 

本当におかしくなっているかを確認するにはkdbとかで
tickadjを見てみればよい。
dw tickadj かねぇ。

KDBマニュアル
http://publib.boulder.ibm.com/infocenter/aix/v6r1/topic/com.ibm.aix.kdb/doc/kdb/kdb_pdf.pdf

リブートしてない(=/unixとメモリのズレ有り)なら
kdbで〜mismatchの警告がでる


http://www.tek-tips.com/viewthread.cfm?qid=1440375&page=9
http://groups.google.co.jp/group/comp.unix.aix/browse_thread/thread/310d297ca1a08c48
http://bbs.loveunix.net/viewthread.php?action=printable&tid=84149
http://www.ibm.com/developerworks/forums/thread.jspa?threadID=192280


posted by koteitan at 11:04| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2010年02月18日

[aix]TCPタイムアウトのお話

備忘録

初期接続のタイムアウト値はtcp_keepinit デフォルト150
0.5秒きざみの設定なので、デフォルトだと75秒になる。

接続が確立した後は、通信中ならばRTOに基づいて計算されるタイムアウト
デフォルトではrtoを決定するパラメーターは以下
rto_low=1
rto_high=64
rto_limit=7
rto_length=13

パケットの再転送時間間隔において、時間の初期値はrto_low、
最大値は rto_high、初期値から何回目に最大値を取るかはrto_limit、何回パケットを送るかはrto_length

つまりデフォルトだと
1.5(※1)、3、6、12、24、48、64(※2)、64、64、64、64、64、64(※3) RST

※1 rto_low+バックオフ衝突回数からややこしい式で計算
  AIXのRTO計算タイマーが0.5の精度らしいから、どうやっても
  一回目は0.5しかない。

※2 rto_highに到達 (rto_limitに到達)
※3 rto_lengthに到達


無通信ならば
tcp_keepcnt = 8
tcp_keepidle = 14400
tcp_keepintvl = 150

tcp_keepidle+(tcp_keepcnt+1)*tcp_keepintvl

デフォルトだと2時間10分75秒

これに伴うWASのヤバ目な問題があり、要チューニング。
http://www-01.ibm.com/support/docview.wss?uid=std302924c5fb40ba6ae4925750600359fd9
http://www-06.ibm.com/jp/domino01/mkt/cnpages1.nsf/page/default-0007496B

全ConnectionPoolが応答待ちしている場合だと、
HA復帰後であってもCnnectionPoolが枯渇しており、
接続タイムアウトになる。
しかし、普通はWorker(・∀・)スッドレ! の方が多いので、
DBが使えないイケテナイASの出来上がり。


その他調べものしたリンク
http://www.atmarkit.co.jp/fwin2k/network/tcpip006/tcpip04.html
http://www.linux.or.jp/JM/html/LDP_man-pages/man7/tcp.7.html
http://www-01.ibm.com/support/docview.wss?uid=std3fca07a8896b7945d49257615002527e3
http://www-01.ibm.com/support/docview.wss?uid=std3e3dc9da7d4e1432a492574c70021e993
http://tiki.is.os-omicron.org/tiki.cgi?c=v&p=TCP%2FRTO
http://www.7key.jp/nw/tcpip/tcp/tcp2.html
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds4/no.htm
http://www-06.ibm.com/jp/domino01/mkt/cnpages1.nsf/page/default-00015820




posted by koteitan at 13:24| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2010年01月26日

[AIX]コマンド引数の制限値

こんな制限に引っかかる前にシェルの制限に引っかかるってばよ。('A`)
つまり、杞憂だ。

制限値はgetconfで取得できる
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.cmds/doc/aixcmds2/getconf.htm?resultof=%22%5f%50%4f%53%49%58%5f%41%52%47%5f%4d%41%58%22%20

これとこれ

ARG_MAX 1048576
_POSIX_ARG_MAX 4096


_POSIX_ARG_MAXはPOSIXに準拠するUNIXの規格(ややこしいな)
つまり、最低4096は保証されるということ

しかし、getconfのページよく読むと結構いいこと書いてあるな。



# 実メモリー・サイズを判別するには、次のように入力します。

getconf REAL_MEMORY

# マシン・ハードウェアが 32 ビットであるか 64 ビットであるかを判別するには、次のように入力します。

getconf HARDWARE_BITMODE

# カーネルが 32 ビットであるか 64 ビットであるかを判別するには、次のように入力します。

getconf KERNEL_BITMODE



参考リンク
http://www.in-ulm.de/~mascheck/various/argmax/
http://www28.atwiki.jp/oshieteaix/pages/102.html

posted by koteitan at 19:04| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2009年11月04日

LANG=C

このCはANSI-CのC。

http://www.gnu.org/software/libc/manual/html_node/Standard-Locales.html

決してLANG=C とLANG=en_USはイコールじゃない。仕様上は。

青本
には
「C(POSIX)ロケールが指定された場合、メッセージカタログが使用されず、
プログラムがデフォルトとしてプログラムコードに記述したメッセージ(英語)が出力されます」

とある。まぁ、この英語ってのがen_USだとはどこにも書いていないがね。

まどろっこしい。
つまりこうだ。

printf (catgets (catd, 1, 1, "Hello, world.\n"));

LANGがC以外の場合、その実行ファイルに紐ついた
メッセージが引数2と3で検索。
(この場合、セット1のメッセージ1番が検索される)
NLSPATH(/usr/lib/nls/msg/)にメッセージはある。

無い場合や見つからない場合、第4引数のメッセージが表示される。
LANG=Cはこの第4メッセージを強制する。

en_USの内容がHello、THE WORLD!!!!! URYYYYY!!なら
LANG=Cとは一致しない。
しかし、青本の説明の「英語」という意味ではあっている。

http://euc.jp/i18n/msgcat.ja.html
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/catgets.3.html
http://mstssk.blogspot.com/2009/04/whats-langc.html
http://d.hatena.ne.jp/elf/20090924/1253775215


posted by koteitan at 11:35| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2009年07月27日

[AIX]PPsize と PP数の最大

(゚Д゚ )ムハァ

クソ古いシステムに新しいHDDを追加したりすると
VGのPPsizeに対してディスク容量がでかすぎて

容量/PPsize > 1016  

となり、

0516-1254 extendvg: ODM 内の PVID の変更中です。
0516-1162 extendvg: 警告、4 の物理区画サイズでは、XXXX 区画を
hdisk1 のために作成する必要があります。ボリューム・グループ
rootvg の制限は、物理ボリュームごとに 1016 の物理区画です。
chvg コマンドに -t オプションを付けて使用し、このボリューム・
グループの物理ボリュームごとの最大物理区画数を変更してみてください。
0516-792 extendvg: ボリューム・グループを拡張できませんでした。



こんな感じで('A`)ウボア とかなる。
まぁ、メッセージにあるようにchvg -t でPVあたりのPPsを増やしてやれば
OKだが、VG全体のPPsは変わらないので、つまりVGに搭載できるPV数が
-tの数字によって減っていく。




t係数 MAX PPs per PV MAX PVs
1 1016 32/128
2 2032 16/64
3 3048 10/42


式にするとこうかね。
PVs = floor( 32 / t係数 ) 
もしくは
PVs = floor( 128 / t係数 ) … 128 DiskVGの場合(mkvg -B)


つまり、設定する係数としては 割り切れる数が効率(・∀・)イイ!!ってことさ。

(´-ω-`) まぁこんなとこあんまりいじくるものでもないわな。

っと、5.3以降ではもっとデカイ可変領域も作れるみたいだなー。
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.cmds/doc/aixcmds3/mkvg.htm?resultof=%22%63%68%76%67%22%20

スケーラブル・タイプのボリューム・グループを作成します。デフォルトでは、このボリューム・グループは、最大 1024 物理ボリューム、256 論理ボリューム、および 32768 物理区画を収容できます。論理ボリュームの数を増やすには、-v オプションを使用します。物理区画の数を増やすには、-P オプションを使用します。
注:
スケーラブル・ボリューム・グループのデフォルト値を超えて maxlvs および maxpps を増やすと、それに比例して VGDA のサイズを大きく増やすことができます。 maxlvs および maxpps の値は減らすことができないので、増やす必要があるときにのみ増やしてください。一方、VGDA スペースの増加につれて、すべての VGDA 更新操作 (論理ボリュームの作成、論理ボリュームの変更、物理ボリュームの追加など) は、実行に長い時間がかかるようになります。


参考
http://www.jazz.nango-net.jp/~sgystk/aix/disk/vg0.html
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.cmds/doc/aixcmds1/chvg.htm?resultof=%22%63%68%76%67%22%20
posted by koteitan at 11:32| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2009年06月11日

[AIX]JFSの制限(2)

失念していたリンクを掘り起こしたので・・・

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.baseadmn/doc/baseadmndita/fs_jfs2.htm

ちなみにJFS2は規格上は4ペタまで扱える。
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/diffs_jfs_enhanced_jfs.htm

AIXの制限で16TBになっているだけである。4ペタとか言われても
ピンと来ない。
ムフフ画像を24bit BMPでHD画質で保存した場合、3*1920*1080=6MB
4ペタ=1024TB=1024*1024*1024=1,073,741,824MB
つまり、178,956,970 枚保存可能。

ファイル数制限にハマルんじゃないかって?
JFS2は動的にinodeが拡張されるので、実質ブロックサイズが
ファイル数制限になる。
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.baseadmn/doc/baseadmndita/fs_jfs2_blocks.htm
ブロックサイズは6MBより遙かに小さいので問題ないな。

inode数制限にハマルんじゃないかって?

inodeの数はJFSで2^24 JFS2は容量に合わせて拡張なので制限値は無い
JFS だとinode数でアウトだなぁ。(2^24=16,777,216)
まぁ、4ペタのファイルが置けないから関係無いんだがね。

ペタバイトとかwwwwwアホかっっw とか言ってみる。
数年前、「テラバイトとかっっっっwアホかっっw」と言っていた
気がする。

我が家にはテラステーション
が鎮座している。

・・・

ということだ。あと何年後だろうね。

posted by koteitan at 15:26| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2009年03月13日

[AIX]ファイルのアクセス権

ファイルの作成・削除に関する権限はそのディレクトリの権限である。
ファイルの権限ではない。

例えば、
/hoge bob:bob rwxrwxrwx
└alice.file alice:alice ---------


とあったとする。
この場合。alice.file はbobによって削除できる。
ディレクトリに対する権限があるから。

勘違いしやすい項目なので注意しよう、俺。

http://www.gnome.gr.jp/docs/gnome-users-guide/primer-permissions.html
posted by koteitan at 10:43| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2009年01月28日

[AIX] tar 絶対→相対への変換

これ、メモしてなかったような。
絶対パスで取得してしまった、tarを書き戻すと大概は
「ひでぶっ!」とか「あべしっ!」な状態になる。

そこで、それらを相対パスに戻しながら任意のディレクトリに戻す方法。


絶対パス/var/adm/crash で書かれたファイルをカレントディレクトリに
戻します。

# pax -r -s!/var/adm/crash/!./!gp -t -f /dev/rmt/0m


正規表現でうまく書けば全部戻せるでしょう。
参考リンク
 http://h50221.www5.hp.com/cgi/service/knavi/production/doc_disp.cgi?category=43&doc=jnav001258
posted by koteitan at 14:58| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2009年01月27日

[AIX]Tips本

AIXの新しい本が出ている。




V6のMPARやWPARについてもちょっとだけ触れられている。
AIXを使っていてあーしたい、こーしたい場合などの事例と
それに伴う操作、コマンドがいろいろ。運用関連な仕事だと重宝するかも。
「既に知っているわ!」でも新しい発見はあるものですぜ。
posted by koteitan at 11:32| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2008年12月25日

[AIX]tape装置容量

例えば、DDS4。
無圧縮/圧縮 20GB/40GB

書き込むデータが既に圧縮済みの場合(Zファイルやgzファイル)
圧縮YESでもほとんど20GBしか書き込めない。

圧縮ファイルを圧縮しても圧縮できるわけがないのである。
情報エントロピーとかで調べてみ。
ビデオテープの3倍録画とチガウよ。

AIXで書き込む時に圧縮非圧縮の判断はrmt装置番号でわかる。
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.files/doc/aixfiles/rmt.htm

要約すると、Density setting #1が0〜3、#2が4〜7
デフォルトは#1が圧縮=YES。
Density setting については lsattr -El rmtX でわかる。

おもろいのぅwおもろいのぅw
他人の見積もり破綻はおもろ・・・プニュ( ´∀`)σ)Д`)
posted by koteitan at 18:14| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2008年12月16日

[aix] ^M

('A`) 素人か。

シェルが動きません→エラーメッセージは?→見つかりませんとかでます。

┐(´д`)┌ ヤレヤレ シェバングで止まってるてことか?
と開いてみると「^M」の嵐。 orz

それは改行コードがwinとunixでは違うからだね・・。と消すように
言うがいつまで経っても終わった報告が無い。
2000行あるシェルをおぼつかないvi操作でいちいち消している。

もう一度言う。('A`) 素人か。

viでやるなら、:%s/^M//g で一括置換だ。
^Mのところは制御文字なので、ctrl+V で「^」ctrl+Mで「M」な。

2000行のシェルが一発で動くわけもなく、なんかやっとるな。
('A`)モウシラネ
posted by koteitan at 16:10| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2008年10月10日

[AIX]名前解決の順番

AIXで名前解決を行う優先順番は

NSORDER

/etc/netsvc.conf

/etc/irs.conf


NSORDERが最も強い定義になる。
デフォルトでは何も表示されないが、これはシステムで設定されているため
見えないらしい。
デフォルトは,bind、nis、local

ちなみにbind4と書くとIPv4 bind6と書くとIPv6、
bindだと両方の問い合わせを行う。

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.prftungd/doc/prftungd/name_resol_tuning.htm?resultof=%22%e3%83%8d%e3%83%bc%e3%83%a0%e3%83%bb%e3%83%ac%e3%82%be%e3%83%aa%e3%83%a5%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0%22%20

http://www28.atwiki.jp/oshieteaix/pages/60.html
http://www28.atwiki.jp/oshieteaix/pages/50.html
posted by koteitan at 19:01| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2008年10月02日

[AIX]pax

paxコマンドなんか使ったことあったかな・・。
GNU Tarで事足りるんじゃねぇのかよ。

アーカイブからリスト
pax -vf dat.par


アーカイブを解凍
pax -rvf dat.par

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.cmds/doc/aixcmds4/pax.htm

2008/10/08 追記

pax アーカイブを作成

pax -wvf ./arc.pr -x pax [File1] [...File2 File3]

-x pax オプションが無いとustar形式で作成する模様
posted by koteitan at 18:18| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする