ablog

不器用で落着きのない技術者のメモ

Solaris10

Solaris 10 64bit で LD_PRELOAD で共有ライブラリをプリロードするとOSコマンド実行時にエラーが発生する

環境 -bash-3.00# uname -a SunOS solaris101 5.10 Generic_142910-17 i86pc i386 i86pc -bash-3.00# cat /etc/release Oracle Solaris 10 9/10 s10x_u9wos_14a X86 Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. Assembled 11 A…

Solaris 10 のホスト名とIPアドレスを変更する手順

概要 Solaris 10 のホスト名とIPアドレスを変更する際に行った作業のメモ。以下の3つの作業を行った。 Solaris 10 のホスト名とIPアドレスを変更する。 Oracle Database の listener.ora と tnsnames.ora を変更する。 Enterprise Manager Database Control …

Tomcat6 自動起動・停止スクリプト for Solaris10

Linux でやりたかったんだけど、手元に Solaris10 しかなかったので、Solaris10で。 インストール・設定手順 インストールする。 # wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.24/bin/apache-tomcat-6.0.24.tar.gz # gunzip -c apache-tomca…

Solaris10 の pstack コマンドの使い方

使い方 プロセスIDを確認する。 % ps -ef ... oracle 1503 1 0 13:49:42 ? 0:00 oracleorcl (LOCAL=NO) ... スタックトレースを取得する。 % pstack 1503 1503: oracleorcl (LOCAL=NO) ffffffff7dcce794 read (e, 10389cc16, 810) 00000001028aca8c snttread…

ps コマンドでスレッドまで見る方法

見方 Linux m をつけるとスレッドまで表示される。 ps -efm Solaris 10 L をつけるとスレッドまで表示される。 ps -efL 参考 絵で見てわかるOS/ストレージ/ネットワーク~データベースはこう使っている (DB Magazine Selection) P.19 追記(2010/04/05): 「-o…

less で日本語のファイルを開くと文字化けする

Solaris 10 で less で日本語のファイルを開くと文字化けした。 % perl -le 'print "あああ" for 1..100' > hoge.txt % wc -l hoge.txt 100 hoge.txt % less hoge.txt "hoge.txt" may be a binary file. See it anyway? <A4><A2><A4><A2><A4><A2> <A4><A2><A4><A2><A4><A2> <A4><A2><A4><A2><A4><A2> <A4><A2><A4><A2><A4><A2> <A4><A2><A4><A2><A4>…</a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4>

Solaris のネットワーク周りのチューニングメモ

ネットワークの統計情報を確認する # netstat -sP tcp tcpListenDrop = 3065 tcpListenDropQ0 = 0 tcpHalfOpenDrop = 0 tcpOutSackRetrans = 99 tcpListenDrop、tcpListenDropQ0、tcpHalfOpenDrop、tcpOutSackRetrans が 0 なら問題なし。 パラメータ設定ス…

Solaris10 でプロセスの通信相手のIPアドレスとポート番号を調べる

Oracle のサーバープロセスの通信相手のIPアドレスとポート番号を調べてみた。 コマンド ps -ef|egrep [o]racleorcl|while read LINE do PID=`echo $LINE|perl -lane 'print $F[1]'` PEER=`pfiles $PID|egrep [p]eername` echo $LINE $PEER done 実行結果 or…

プロセスについて調べる

Solaris でプロセスについて調べるときに使えるコマンドをメモっておく。 pfiles ptree truss pargs pgrep 上記以外にも、以下のURLにいろいろ載ってる。 http://docs.sun.com/app/docs/doc/819-1210/pfiles-1?a=view

dbx を使ってみる

Solaris10 で dbx を使ってみた。 Oracle 9iR2 に同梱されているサンプルプログラム(Pro*C)をデバッグオプション付でコンパイルし、dbx を使ってステップ実行などしてみた。 env_precomp.mk.debug を作成する。こいつを使うとデバッグオプション付でコンパ…

SUN Studio 12 をインストールする

http://sdc.sun.co.jp/sunstudio/downloads/index.html の [製品 Tar ファイルをダウンロード] からインストーラをダウンロードする。 インストールする。 # cd /tmp # bunzip2 SunStudio12ml-solaris-sparc-200709-pkg.tar.bz2 # tar xvf SunStudio12ml-sol…

Solaris で grep -R する

Solaris であるディレクトリ以下を再帰的に grep したい場合は find を使えばよい。 $ find . -type f -exec grep hoge {} /dev/null \; ちょっと面倒だけど、コマンドをパイプでつないでやればだいたいのことができるのがUNIX系OSの良いところ。/dev/null …

Solaris10 で /home 以下にディレクトリをマウントする

/etc/auto_home を編集する。 # vi /etc/auto_home hoge localhost:/export/home/hoge oracle localhost:/export/home/oracle ユーザのホームディレクトリを変更する。ユーザのホームディレクトリでない場合はこの手順は不要。 perl -i.org -ple 's/\/export…

snoopコマンドでキャプチャするパケットをフィルタする方法

送信元または送信先の IP が 192.168.1.10 で、送信元または送信先のポートが 80 のパケットを表示する。 # snoop host 192.168.1.10 port 80 -x0 とするとパケットの中身を全て表示する。 # snoop -x0 host 192.168.1.10 port 80 [参考] http://h9.cocolog-…

Solaris10のIPアドレスを変更するときに確認すべきファイル

/etc/hostname.interface /etc/nodename /etc/defaultdomain /etc/defaultrouter /etc/inet/hosts /etc/inet/ipnodes [参考] http://docs.sun.com/app/docs/doc/819-0380/6n2qfj0sd?l=ja&a=view

Solaris10 に VMware Tools をインストールする

VMware Fusionの「仮想マシン」メニューから「Vmware Toolsのインストール」を選択する。 /cdrom/vmwaretools にインストールイメージがマウントされるので、これを使ってインストールする。

Solarisのバージョンを確認する方法

uname コマンドで確認する。 # uname -a SunOS solaris101 5.10 Generic_137138-09 i86pc i386 i86pc /etc/release を見る。 # cat /etc/release Solaris 10 10/08 s10x_u6wos_07b X86 Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. Use is s…

Solaris10の時刻を修正する

17時00分00秒に修正する場合。 # date 1700.00

Solarisコンテナで仮想化

Solaris10では、1つの物理マシン上に複数の仮想Solaris実行環境(ゾーンと呼ぶ)が構成できるらしい。 AIX にも LPAR とかいう機能があったなぁ。両方とも使ったことないけど。 Solarisゾーンを使ってみる - NO LIMIT Is. Wiki支部 Solarisコンテナでセキュ…

Solaris10で vncserver が起動しない

vncserver を起動しようとると、失敗した。 # /opt/sfw/bin/vncserver vncserver: couldn't find "xauth" on your PATH. xauth が見つからないらしいので探す。 # find / -name *xauth* /usr/openwin/bin/xauth /usr/openwin/share/man/man1/xauth.1 /usr/op…

Solaris で tar.gz を展開する

$ tar xvfz ... とできないので、 $ gunzip -c hoge.tar.gz |tar xvf - とすればよい。 圧縮ファイルの中身を確認する場合は、 $ gunzip -c hoge.tar.gz |tar tvf - 逆に、tar.gz に圧縮したい場合は、 $ tar cvf - hoge | gzip -c > hoge.tar.gz [補足] gzi…

Solaris10でプロセスが使っているポートを調べる

コマンド # for pid in `ps -aeo pid | grep -v PID`; do pfiles ${pid} | egrep "^${pid}:|sockname:" done 実行結果 (中略) 1337: /usr/lib/ssh/sshd sockname: AF_INET6 ::ffff:192.168.45.101 port: 22 976: oracleorcl (LOCAL=NO) sockname: AF_INET …

プロセスIDからリンクしている共有ライブラリを調べる

Solaris10 でプロセスIDからリンクしている共有ライブラリを調べる方法をメモ。 pldd 各プロセスにリンクされている (dlopen(3C) を使用して明示的に接続されている共有オブジェクトを含む) 動的ライブラリを表示します。ldd(1) も参照してください。 http:/…

Solaris10 で時刻を修正する

Solaris10 では「date -a [-]秒」で時刻を修正できる。 5分進めたいなら、 # date -a 3005分遅らせたいなら、 # date -a -300コマンドを実行すると、徐々に時刻が修正される。 Oralce が動いている Solaris で時刻を修正し、その間に別のマシンで常駐プログ…

Oracle のインスタンス・リスナー・EMDBControl の自動起動・停止設定

Oracle のインスタンス・リスナー・EMDBControl の自動起動・停止設定手順をメモ。 以下は Oracle 10gR2 on Solaris 10 の場合の手順。