Linuxタグのついている投稿
文字コードを再帰で置換
2010年9月2日
コマンドメモ。
find . -type f -name "*.php" -exec nkf -s --overwrite {} \;
nkfの引数を変えれば任意の文字コードへ変換できる。前は、シェルスクリプトを書いていたけど、nkfのオプションにoverwriteがあることを知ったのでコマンド一発でできるようになった。
qmail+vpopmailで存在しないアカウントをSMTPで拒否する方法
2010年5月20日
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
MySQLクイックチューニング
2010年1月19日
mysqltuner実行画面
mysqlのパラメータチューニングをある程度おおざっぱに行うスクリプトを発見。
一言で言えば、10分である程度チューニングできる!
http://blog.mysqltuner.com/
使い方は至って簡単、ダウンロードして実行するだけ。
実行すると、MySQLへのログインIDとパスワードが聞かれる。入力すると、MySQLのステータスや変数、物理メモリ容量をチェックされ、その環境に合ったパラメータを提案してくれる。
% wget http://mysqltuner.com/mysqltuner.pl % perl mysqltuner.pl
適当に運用している環境ではすごい楽。デフォルトのmy.cnfでは物足りないけど、パラメータチューニングをExcelを使って統計情報を元にチューニングするのは面倒という人向け。
24時間以上運用していないと統計値が収束しないので、ある程度運用してから実行した方がいいです。
MySQL InnoDB, Linux and SSD tuning
2009年11月20日
松信 嘉範さんによるhbstudy#5発表資料「Linux/MySQLサーバーのパフォーマンスチューニング」
これを読んで、追加で行ったチューニングや新しいことメモ。さすが中の人だけあって詳しい。
1:1
InnoDBで。
TEXTなどのデータを別テーブルへ。
よく検索される列ごとにテーブルをまとめるとbuffer poolを効率よく使える。
物理メモリが足りなくなったときの挙動
ファイルシステムキャッシュを減らす。(100の場合、プロセスをスワップアウト)
# echo 0 > /proc/sys/vm/swappiness
永続化
# echo ‘vm.swappiness=0′ >> /etc/sysctl.conf
mtstat
vmstatの高機能版かな。数値がhuman friendlyで、カラーリングされている。
(トップ画)
git memo
2009年9月12日
手元のgitメモが溜ってきたので放出!
% 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 HEAD
mergeされていないbranchのリスト
% git branch --no-merged
あとからbranchを作る
% git branch new-branch % git reset --hard
CVSやsvnのkeywordパラメータのように、$Id:$を自動的に置換する設定
% echo "* ident" >> .gitattributes
remote 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 -a % git branch new-branch % git reset --hard HEAD~1
worktreeをcommitしておく。現時点の作業がbranchになるため。 そして、index,worktreeを指定したrevisionに戻す。UNIX設定ファイル共有
ホームディレクトリのファイルをgitで管理すると共有が楽。
andLinuxの起動が恐ろしく速い
2009年7月23日
30秒弱の動画なので見てみてください。
ブートからログインプロンプトが表示されるまで10秒かかってないです。Windows上でちょちょいと開発するにはandLinuxで事足りる。
いままでは、Linux上で動かすプログラム開発するときはVMwareをわざわざ起動していたけどこれでいいや。
andLinux、意外とすごくて、cygwinと同じレベルでの仮想化と思っていたらもっと低いレイヤで仮想化して居るみたい。
i386のUbuntuバイナリがそのまま動く。
なんでかと思ったら、kernelが頑張っててくれたのね・・・
PHP 5.2.10 configure error
2009年6月20日
PHP5.2.10が出たので開発環境へインストール。
5.2.8と同じオプションでconfigureしたのにこんなエラーが出た。
% ./configure --enable-mbstring --enable-soap --enable-zend-multibyte --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-curl --with-curlwrappers --with-gd --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-mcrypt
.....
configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl -dir>/include/curl/
環境は、
# cat /etc/issue Debian GNU/Linux 5.0 \n \l
headerファイルインストールして解決
# aptitude install libcurl4-gnutls-dev
cronによるコマンド実行
2009年5月15日
疑問:crontabへ同時刻に実行するコマンドを書いたときに、各コマンドの終了を待って次に実行するのか?それとも、サブプロセスで実行するのか?
(=同期実行か、非同期実行か?)
答え:非同期実行。
補足:同期実行させたいときは、こんな感じ。
33 17 * * * /home/matsu/sleep.sh ; /home/matsu/sleep.sh




最近のコメント