Linux
tokyotyrantをdaemontoolsで管理
2月 5th
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
SSHトンネルが切れる
1月 15th
MySQLの接続をSSHトンネルしているといつの間にかリモートホストに切断されているときがある。 そんなときは、serveraliveintervalオプションを設定して接続する。
% /usr/bin/ssh -o serveraliveinterval=60 -N -L 3306:localhost:3306 remotehost
もしくはリモートホストの/etc/ssh/sshd_configに以下を追加して、sshdを再起動すればKeepaliveを設定できる。
KeepAlive yes ClientAliveInterval 60
Source: http://madphilosopher.ca/2005/07/an-ssh-keep-alive-tip/ http://slashdot.jp/~gm300/journal/451300
git1.6 install
1月 6th
環境によってはインストールオプションが必要みたい。
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
freeコマンド
9月 18th
buffer, cacheが何に利用されているのかちゃんと知りたいなー http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html
git memo
9月 12th
手元のgitメモが溜ってきたので放出!
参考書gitは、この本を一通り読んで理解しました。 Web上の解説だと断片的だし、gitの動作モデルが的確に解説されているページを見つけられませんでしたが、この本ではgitの動作モデル、内部での処理モデルをわかりやすく解説してくれています。英語です。
.gitconfig俺の設定
% cat ~/.gitconfig
[user]
name = Yuki Matsukura
email = 秘密@秘密ドメイン
[color]
ui = auto
diff = auto
status = auto
branch = auto
interactive = auto
Subversion vs git
subversionへの不満が爆発。
- 2年前頃からtortoiseSVNでupdate,add,commitをしていると.svnディレクトリ内が壊れるようで、add,update,commitが一切できなくなる。回復するためには再チェックアウトするしかない。(過去2年で、かれこれ10回ぐらい起きた。)
- ファイルが多くなるとcommit,updateがすごい遅い。(1,2分かかる)
- チェックアウトすると小さいファイルを大量に作る→Disk IOが激しい
gitが良さそう。
- 軽い
- 大規模プロジェクトで利用されている
Web上の資料読んでもモデルが理解しづらいのでWeb+DB PRESS Vol.50を読むのが一番!
Web+DBはあまり深く書いていないので、運用しているとかゆいところに手を出そうとしても手が出せない。もっとしっかり理解したい場合は、洋書だけどVersion Control with Gitがいい。
TIPS あるコミット分だけ反映% git fetch % git-cherry-pick 0e736c1eff177f143ae55ab8971bae6e5753cdb6ワークツリーの変更を取り消し
% git checkout -- path/to/file直前のコミット取り消し
% git revert HEADmergeされていないbranchのリスト
% git branch --no-mergedあとからbranchを作る
% git branch new-branch % git reset --hardCVSやsvnのkeywordパラメータのように、$Id:$を自動的に置換する設定
% echo "* ident" >> .gitattributesremote repositoryのbranchを消す
空のブランチをremoteにpushすればいい。
% git push origin :20090918-sitemap
git fetchするだけでは、remoteの消えたbranchをローカルのtracking branchに反映してくれないので、 ローカルのtracking branchも消す
% git branch -d -r origin/20090907-sitemapあとからブランチを作る
小さな修正だと思って、masterをいじっていたら実は根が深く、branchを作っておけば良かったなぁと思ったときの対処法
% git commit More >
gitでハイフンから始まるブランチ名を削除
8月 29th
不覚にもコマンドの打ち間違いをしてしまい、ハイフンから始まるブランチができてしまった。削除するには以下のコマンド。
% git branch -D -- --track Deleted branch --track (was 2353563). %
lsと同じ要領で試してみたらできた。
andLinuxの起動が恐ろしく速い
7月 23rd
30秒弱の動画なので見てみてください。 ブートからログインプロンプトが表示されるまで10秒かかってないです。Windows上でちょちょいと開発するにはandLinuxで事足りる。
いままでは、Linux上で動かすプログラム開発するときはVMwareをわざわざ起動していたけどこれでいいや。
andLinux、意外とすごくて、cygwinと同じレベルでの仮想化と思っていたらもっと低いレイヤで仮想化して居るみたい。 i386のUbuntuバイナリがそのまま動く。
なんでかと思ったら、kernelが頑張っててくれたのね・・・
apacheのKeepAliveTimeout
6月 13th
mixiでは以下の値らしい。
KeepAlive On KeepAliveTimeout 1 MaxKeepAliveRequest 20
思ったこと: KeepAliveTimeoutは1でいいんだ。
cronによるコマンド実行
5月 15th
疑問:crontabへ同時刻に実行するコマンドを書いたときに、各コマンドの終了を待って次に実行するのか?それとも、サブプロセスで実行するのか?
(=同期実行か、非同期実行か?)
答え:非同期実行。
補足:同期実行させたいときは、こんな感じ。
33 17 * * * /home/matsu/sleep.sh ; /home/matsu/sleep.sh
最近のコメント