Solarisのランレベル

Solarisランレベルって、Linuxと違うのね。

0:電源オフ
s/S:シングルユーザーモード
1:管理モード
2:マルチユーザーモード
3:マルチユーザーモードNFSサーバ起動)
4:未使用
5:電源オフ(自動電源断)
6:再起動

参照元Solaris逆引き辞典

rcスクリプトも違っていて、ランレベル毎にrcが分かれている。

/etc/rc0 /etc/rc2 /etc/rc3 ....

そして、デフォルトのinittabの記述だと、ランレベル3のときはランレベル2も実行します。

参照元MIRACLE LINUX Linux技術トレーニング 基本管理コース I


それぞれのランレベルで起動したり、停止するサービスは/etc/rc2.dとか/etc/rc0.dとかにシンボリックリンクを置くのはLinuxと同じなのだけど、chkconfig見たいなツールがないので、手作業でリンクをおかないと行けないようです。




ちなみに、今回調べたのは、Solaris9の環境。
WEBで調べていて、ちらほら見たところによると、Solaris10ではこのあたりが大幅に変わったみたい。


SMFとかいう新しい仕掛けに置き換わったということかな。
参照元Solaris 10 の SMF

sarコマンド

Solarisのsar、オプションの意味

【使用方法】
sar [ -aAbcdgkmpqruvwy ] [ -o filename ] t [ n ]
sar [ -aAbcdgkmpqruvwy ] [ -e time ] [ -f filename ] [ -i sec ] [ -s time ]

【オプション】

  • a:ファイルアクセス操作の統計情報の表示
  • A:オプション全て取得(-abcdgkmpqruvwy)
  • b:バッファー動作の統計情報が表示
  • c:システムコールの統計情報
  • d:ディスク動作の統計情報が表示
  • g:ページアウトとメモリー解放動作の平均値
  • k:KMAに関する資源の情報
  • m:プロセス間通信の動作
  • p:ページイン動作の表示
  • q:待ち行列(キュー)の状態表示
  • r:使用してないメモリーページ数,スワップファイルのブロック数
  • u:CPU の使用状況の表示
  • v:プロセス、inode等のテーブルの状態の表示
  • w:スワッピングと切り替え動作の表示
  • y:端末デバイス(TTY)の動作の監視

出展:Solarisでいきましょか? -性能関連-

TOMCAT:ActiveDirectoryで認証するためのJNDIRealmの作り方

設定例

ドメイン名:domain.local
接続アカウント:connector 接続パスワード:password
サーバー名:host.domain.local
TOMCATのroleをActiveDirectoryのグループにマッピング


<Realm className="org.apache.catalina.realm.JNDIRealm"
debug="99"
connectionName="CN=connector,OU=people,DC=domain,DC=local"
connectionPassword="password"
connectionURL="ldap://host.domain.local:389"
userBase="DC=domain,DC=local"
userSearch="(sAMAccountName={0})"
userSubtree="true"
userRoleName="memberOf"
roleBase="DC=domain,DC=local"
roleName="CN"
roleSearch="(member={0})"
roleSubtree="true"
referrals="follow" />

解説

tomcatのデフォルトの設定では、認証用にUserDatabaseレルムが使用されています。


<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
この部分を設定例のようなJNDIレルムの設定に置き換えると、tomcat上でのBASIC認証などでActiveDirectoryを参照できます。

それぞれの設定について説明します。
ここに解説がない設定項目はtomcatのマニュアル(JNDIレルム)を参照。
また、ADSI EDIT(Windows標準のツール)やLDAP Browser/Editor(JavaベースのLDAPビューア)をつかうとユーザやグループの属性をLDAPを通じて確認することができます。

ActiveDirectory接続設定


connectionName="CN=connector,OU=people,DC=domain,DC=local"
connectionPassword="password"

ActiveDirectoryに接続するためのアカウント設定です。
connectionNameには接続に使用するユーザのDNを記述します。Windowsにログインするときのユーザとパスワードではなく、ldap的ユーザ名です。
なので、CNは日本語になっている場合も多いかも知れません。(ちなみに、日本語も通りました。)

ドメイン


userBase="DC=domain,DC=local"
userSubtree="true"
roleBase="DC=domain,DC=local"
roleSubtree="true"
今回は、domain.localというドメイン名でActiveDirectoryを構築してみました。
userBase、roleBaseがユーザやロールを検索する起点です。userSubtree、roleSubtreeをtrueとすることで、これより下階層も検索対象に含めます。

ユーザ名の設定


userSearch="(sAMAccountName={0})"
認証時のユーザ名をどの属性にマッピングするかという定義。
ユーザオブジェクトのsAMAccountNameという属性がどうやらWindowsにログインするときのユーザ名のようです。
認証ダイアログでのユーザ名もログインのときと同じにしたいので、この設定にしました。

ユーザ→グループを紐付けるユーザオブジェクトの属性


userRoleName="memberOf"
ユーザオブジェクトのmemberOf属性には、そのユーザが所属するグループ名が入っています。
この属性を使うとユーザとグループが関連付けられます。

グループをロールにマッピングする設定


roleName="CN"
roleSearch="(member={0})"
roleNameは、ロール名=グループ名にしたいので、CNから取得することにします。
グループオブジェクトのmember属性にそのグループに所属するユーザ名が入っています。
認証時に入力されたユーザ名とmember属性を引き当ててグループを検索する設定とします。

リファラー処理?


referrals="follow"
JNDIRealmのjavadocによると、ActiveDirectoryに対して認証を行う際は、デフォルトでは処理できないので、followをセットせよと書いてありました。

試した環境

ActiveDirectory:Windows2003ServerR2180日評価版
TOMCAT:5.5.20
JDK:1.5.0_07

Subversionの続き履歴を残したままリポジトリ間でファイルを移動

普通にエクスポートすると、svnの管理情報が無くなった普通のディレクトリツリーが出来る。
これをインポートすると当然履歴は無くなるわけで・・・

リポジトリを増やしたり統合したりして、整理したいような場合に、これまでの履歴を残したままリポジトリ間でファイルを移動するにはどうしたらいいのか?

svnadmin dump

ありました、svnadminで出来るんですね。

svnadmin dump 元のリポジトリパス > dumpfile

とすると、手元にリポジトリの中身を全部一つにまとめたdumpfileが出来ます。
小さいリポジトリでしか試していないけど、リポジトリが大きくなったら大変そう。。。

type dumpfile | svndumpfilter include 取り出したいディレクトリのパス > sub-dumpfile
unix系ならtypeはcat

取り出したいディレクトリのパスはスペース区切りで並べれば複数指定できる。
例:svndumpfilter include hoge/ foo/ bar/subbar/
※ こうやって指定しても、hogeOLDみたいなディレクトリまで含まれてしまうのはどうにかならないのかな。

svnadmin load 移動先のリポジトリパス < sub-dumpfile

これで移動先のリポジトリに、sub-dumpfileに収められた内容が履歴を残したままインポートできる。
移動先にもともとあるファイルで、異なるファイル名(パス)のファイルはもちろん消えたりしなかったけど、同じファイル名(パス)があったらどうなるかは試してません。
移動先のリポジトリパスは、URLでは指定できません。
ローカルで実行してください。