Linux
文字コードを再帰で置換
2010年9月2日
コマンドメモ。
find . -type f -name "*.php" -exec nkf -s --overwrite {} \;
nkfの引数を変えれば任意の文字コードへ変換できる。前は、シェルスクリプトを書いていたけど、nkfのオプションにoverwriteがあることを知ったのでコマンド一発でできるようになった。
lvm管理しているファイルシステムにディスクを追加
2010年7月22日

今回紹介する方法は、新品のディスク丸ごとを、稼働中のLogical Volumeへ追加する場合の手順。オンラインのままできます。
手順は以下。
resize2fsコマンド実行中に、dfを見ると徐々にディスク容量が増えていくのが確認できる。
resize2fsは1.5TBで1時間かかる。
# fidks /dev/sdc 一応パーティション消しておく。 # vgextend sv1 /dev/sdc # resize2fs /dev/mapper/sv1-home
いろんな解説ページがいろんな方法を提示してあって、正解にたどり着くまで大変だった。。。確かに、目的に応じて使うコマンドや手順が違ってくるね。前提をしっかり書いて欲しい。
gitにて公開したbranchでrebaseしちゃダメ
2010年7月9日
言いたいことは、「公開したbranchではrebase禁止!」
例えば:Aさんがbranch作り、Bさんが派生したbranchを作ったら、Aさんはrebase禁止!
続きを読む >
kmemsizeをnagiosで監視
2010年4月23日
![]()
VPSで運用している環境にて、kmemsizeの制約にひっかかり、いきなりOSが止まってしまいました。
それを回避するためにnagiosでこのkmemsizeを監視するスクリプトを書きました。
kmemsizeは/proc/user_beancountersに仮想ファイルとして出力されています。
このファイルはrootしか読めないため、/etc/sudoersへnagiosを実行しているユーザを追加する必要があります。
#!/usr/bin/perl
use strict;
## add folloing lines to /etc/sudoers
# Defaults:nagios !requiretty
# nagios ALL=(ALL) NOPASSWD: /bin/cat
my $CRITICAL = 0.8;
my $WARNING = 0.7;
my $kmem_line = `sudo cat /proc/user_beancounters 2> /dev/null | grep kmem`;
chomp $kmem_line;
$kmem_line =~ /([0-9]+) +([0-9]+) +([0-9]+) +([0-9]+)/;
my $current_kmemsize = $1;
my $max_kmemsize = $4;
my $status = "OK";
if($max_kmemsize * $CRITICAL < $current_kmemsize){
$status = "CRITICAL";
}elsif($max_kmemsize * $WARNING < $current_kmemsize){
$status = 'WARNING';
}
print $status;
print " - ";
print $current_kmemsize;
print " | ";
print $kmem_line;
print "\n";
exit(0);
kmemsize
2010年4月22日
![]()
VPS上のOSがいきなり止まったから原因を調べたら、VPSで割り当てられているkmemsizeがリミットに達したからだった。
物理メモリ使用量や、プロセス数はさほど多くないのにkmemsizeのリミットに引っかかるとは。。。意外な落とし穴だった。
CPIでは、32MB割り当てられている。VPSのサービス内容を見てみるとkmemsizeは必ず示されて居るぐらい重要な指標みたい。
nagiosの監視項目に追加しておかなきゃです。
CPIでは、このトラブルが起きた時にはParallelsからコンテナ(VPS上の仮装OS)の再起動を手動で実行する必要があります。
この事に関して、CPIの回答は消極的。
kmemsizeの制限にかかった際にOSが停止したようであるとの事ですが、
そのような場合にコンテナを再起動するような設定はいたしかねます。尚、リソースを多く使用するプログラム等を設置されている場合は、
お客様にてプログラムの見直しを行っていただきますよう
お願い申し上げます。
以下に、kmemsizeがリミットに達した時の物理メモリ容量とプロセス数のmuninグラフを添付しておきます。これじゃ、物理メモリを1GBも使い切れないじゃん!

tokyotyrantをdaemontoolsで管理
2010年2月5日
runファイルのファンプルを掲載します。
必ずオプションを確認して各自にあった設定に変更してください。
#!/bin/sh PATH=$PATH:/usr/local/bin basedir="/path/to/datadir" configdir="/path/to/luadir" exec 2>&1 exec envuidgid daemon softlimit -d300000 \ ttserver -port 1978 \ -host 127.0.0.1 \ -ulog $basedir/ulog \ -sid 1 \ -ext $configdir/ttexpire.lua -extpc expire 600 \ -thnum 2 \ $basedir/casket.tct#idx=e:desc#dfunit=8
CPAN初期設定
2010年1月18日

install Bundle::CPAN しろと言われたけど、接続できない 凸(`、´メ)
以下のようにして、ミラーサイトを追加してあげる。
sudo cpan > o conf urllist push ftp://ftp.kddilabs.jp/CPAN/ > o conf commit > install Bundle::CPAN
YMC vs CPI
2010年1月7日

VPSのbenchmark。
目的:ネットワーク帯域など、クライアントから見たHTTPのレスポンス性をチェックする。
測定環境
apache上げて単純なHTMLファイルの転送。
ファイルの内容:
<html><body><h1>It works!</h1></body></html>
apache benchのオプション:
% /usr/local/apache2/bin/ab -n 1000 -c 2
Requests per second: 34.84 [#/sec] (mean)
Requests per second: 163.67 [#/sec] (mean)
結果
4.7倍 CPIが高速!
git1.6 install
2010年1月6日
環境によってはインストールオプションが必要みたい。
wget http://kernel.org/pub/software/scm/git/git-1.6.6.tar.bz2 ./configure make
とすると、
こんなエラーが出て、makeが出て止まる。
BUILTIN git-repo-config
BUILTIN git-show
BUILTIN git-status
BUILTIN git-whatchanged
SUBDIR git-gui
GITGUI_VERSION = 0.10.2
* new locations or Tcl/Tk interpreter
GEN git-gui
INDEX lib/
* tclsh failed; using unoptimized loading
MSGFMT po/de.msg make[1]: *** [po/de.msg] Error 127
make: *** [all] Error 2
gettextもtclも入っている。
おそらくGUI関連のバイナリも作ろうとしているので、configureを以下のようにして回避。
./configure --without-tcltk make sudo make install



最近のコメント