(c)AKAKE

いろいろいろいろ調べごと

category :[雑談] edit
サーバーが遅いって事が発端で
いろいろわかんないことや知りたい事が出てきたので
ここ数日いろいろ調べまわってた。

夢の中でも調べたのには参った。

・Munin
サーバーの情報をグラフで表示してくれる奴
[→GIGAZINE:Mununをカスタマイズして(ry]
ここを見ながらインストール。
OUTLIVE の負荷情報でもグラフ化しようと思ってpluginを作成。
困ったのが負荷情報をどこから取って来るかってとこ
psコマンドで取れると思ったんだけど よく説明を見ると
%CPUの値は プロセスが起動されてからの平均負荷だそうで
これじゃ役に立たない。
TOPコマンドのように単位時間あたりの負荷はどこからか取れないかなと
いろいろ調べているうちに 結局 topのソースを引っ張ってそれを読む事に。
/proc/{pid}/stat から情報を読むことにして、pluginを作成。
ずいぶんいろいろ遠回りしながらいろいろ調べたのでlinuxカーネルに
ちょっと勉強するハメになったい。

・samba
linuxOSでWindowsの共有ファイルや共有プリンタを実現してくれるサーバー

以前から気になっていた Webページ(SWAT)からのサービスの起動/停止と
情報取得の方法(現在アクセス中の共有ファイルやユーザー情報など)も
ソースを追って調べるてみた

サービスは 単純にコマンドを発行してるだけ
そういえばこのSWATのページはrootでログインしてコントロールするんだった
rootならそのまま起動しても問題ないよね。
調べたいのは、webページから指定ユーザー権限でコマンドを発行する方法。

SetUIDっていうのがあって 実行ファイルのオーナー権限で実行するというやつらしくて

/bin/sh なんかで起動/停止のスクリプトを書いて chmod u+s とかすればいいみたい。
これはまだテストしてない

情報取得の方法はソースを読むと・・・
あー ファイルへ書き出して それを読み込んでるだけみたい。
なんか linuxらしいエレガントな方法でもあるのかなと思ったんだけどな。

なんやかんやで一番時間がかかったのが topコマンドのソースを見つけることだったりして

追記
よく考えりゃ、swatはweb機能を持った単体のプログラムだった。
もともとroot権限で動いてるから、何でも出来るよね。

追記2
shもperlもSetUIDで動作してるかチェックして実行させないようにしている模様
cでSetUIDしたラッパーを用意したけど、結局スクリプト動かすところでいまくいかず

posted by AKAKE at 2009/05/22 13:52

Notice: Undefined index: HTTP_REFERER in /home/cosmosa/www/blog/topic.php on line 123