新しいユーザーを作成する

環境 CentOS 5.5 (Final) Amazon Linux 2010.11.1 (beta) fooユーザーを作成します。 # adduser foo # id foo uid=500(foo) gid=501(foo) groups=501(foo) wheelグループに追加します。usermod -Gの第一引数には、いま所属しているグループも含めて所属させ…

pacoのインストール

概要 ソースコードからインストールした場合の欠点は、ソフトウェアが管理されないことです。そのため、何がインストールされているのかわからなくなったり、アンインストールできなくなったり、、、インストール時のログを残しておいてそこから読み解くとい…

rpmやyumでパッケージの内容を確認する方法

rpmコマンドでパッケージの内容を確認するには rpm -qlp <rpmパッケージ> 例えば # rpm -qlp mysql-bench-5.5.8-1.el5.remi.x86_64.rpm /usr/share/sql-bench /usr/share/sql-bench/Data /usr/share/sql-bench/Data/ATIS /usr/share/sql-bench/Data/ATIS/aircraft.txt /usr/</rpmパッケージ>…

ApacheBenchによる負荷テスト

ApacheBench(以下、ab)はApacheに付属する負荷テストツールです。負荷テストツールとしてはJMeterなどが有名ですが、abはApacheがインストールされていれば使えるという手軽さから、ちょっとした性能測定に重宝します。よく使うオプションは同時接続数とリ…

パッチファイルの作り方

diff -Nuprd FROM_DIR TO_DIR > PATCH_FILE -u unifiedフォーマットで出力する -p --show-c-function 各変更を含むCの関数名を表示する -r --recursive ディレクトリを再帰的に比較する -N --new-file 存在しないファイルは空とみなす -d --minimal できるだ…

MySQL server has gone away

ステージング環境の挙動がおかしいので調べてみると、"MySQL server has gone away"というエラーが発生していました。どうやらクローズされたコネクション上でクエリを実行しようとすると、このエラーが発生するようです。もう少し詳しく調べてみました。 A.…

bz2

インストール bz2はlibbz2をRubyから扱うためのライブラリです。bz2をインストールするには、あらかじめbzip2-develパッケージをインストールしておく必要があります。 $ sudo yum install bzip2-devel $ sudo gem install bz2 --no-ri --no-rdocbzip2-devel…

RubyGems

$ gem install <gemパッケージ> --no-rdoc --no-riドキュメントが必要ない場合、--no-rdocと--no-riを指定することでインストール時間を短縮することができます。 --no-rdoc RDoc形式のドキュメントを生成しない --no-ri RIコマンドで読めるドキュメントを生成しない $ gem </gemパッケージ>…

cache_fuプラグイン

インストール cache_fu*1プラグインはActiveRecordの結果をmemcachedにキャッシュしてくれるプラグインです。GitHubで公開されています。 ruby script/plugin install git://github.com/defunkt/cache_fu.git 使い方 サーバーの一覧を取得します。 >> CACHE.…

ミリ秒の精度で時刻を表示する

ちょっと“実行時間を確認したい”ときに便利なTime.nowですが、秒の精度でしか表示できません。 >> Time.now => Sat Oct 30 01:46:23 +0900 2010 ボトルネックを探しているときなど、秒だと精度が足りないというときは、Time#usec*1を組み合わせることでマイ…

リソース情報を収集するためLinux標準ツール

故障発生時にCPU使用率やプロセス情報などのリソース情報を収集するツールをまとめてみました。 top $ top sar $ sar $ sar -u <取得間隔(秒)> <取得回数> # CPU使用率 $ sar -q <取得間隔(秒)> <取得回数> # プロセスの待ちキュー数 $ sar -r <取得間隔…

Gitのコマンドにaliasを定義する

毎日毎日 $ git branch $ git checkout $ git statusとか打つのに疲れてきたら、設定ファイル(.git/configか~/.gitconfig)にaliasを定義してみましょう。 [alias] st = status ci = commit co = checkoutあとはこんな風に、、、 # git st # git ci # git co …

メッセージを委譲する

あるオブジェクトがメッセージを受け取った(メソッドが呼び出された)とき、実際の処理を他のオブジェクトに委ねることを“委譲(delegate)”と呼びます。RailsではModuleクラスのdelegateメソッド*1によって、委譲を簡単に実現することができます。 class B…

S3Syncを使ってAmazon S3からローカルディレクトリにファイルをダウンロードする

「S3Syncを使ってローカルディレクトリからAmazon S3にファイルをアップロードする」の続きです。S3Syncのインストールとssl.certs.sharをダウンロードして実行するところまでは、そちらの記事を参考にしてください。アップロードにならって、自動実行するた…

バージョンを確認する

いろいろなバージョンを確認するコマンドをまとめておきます。CentOS $ cat /etc/redhat-release CentOS release 5.5 (Final)Fedora 8 $ cat /etc/fedora-release Fedora release 8 (Werewolf) /etc/system-releaseでもOKです。 $ cat /etc/system-release F…

MySQLドライバのインストール

CentOSにMySQLドライバをインストールしようとしたところ、思いがけずつまずいたので、後学のためにメモしておきます。 環境 CentOS 5.5 Apache 2.2.3 MySQL 5.0.77 Ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] Rails 2.3.8 デプロイしようとし…

Redmineからのメール通知がメーリングリストに届かない

Redmineからのメール通知、普通のメールアドレス宛だと届くのに、メーリングリスト宛だと届きません。いろいろ調べたところ、メールヘッダに設定された Precedence: bulkが原因だとわかりました。Precedenceフィールドは優先度を意味するフィールドで、メー…

S3Syncを使ってローカルディレクトリからAmazon S3にファイルをアップロードする

まずはS3Syncをインストールします。 $ wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz $ tar zxvf s3sync.tar.gz $ sudo cp -pr s3sync/ /usr/local/ローカルディレクトリとAmazon S3間の通信にSSLを使いたいので、ssl.certs.sharをダウ…

ユーザーにroot権限の一部を委譲する

ユーザーにroot権限の一部を委譲し、rootとしてコマンドを実行できるようにためには、/etc/sudoersを編集します。/etc/sudoersには、誰が・どのホストで・誰の権限で・どのコマンドを実行できるか、が定義されています。sudoersの編集には専用コマンドが用意…

ルーティング

ルーティングの定義を一覧として表示します。 >> rs = ActionController::Routing::Routes >> puts rs.routesルーティングが受け取ったパスをどのように解析するかを表示します。 >> rs.recognize_path "/store"ルーティングが受け取ったパラメタからどのよ…

Mac OS Xでスクリーンキャプチャを撮る方法

操作方法 デスクトップに保存スクリーン全体command+shift+3 選択した範囲command+shift+4 => 範囲を選択 選択したウィンドウcommand+shift+4 => space => ウィンドウを選択(クリック) クリップボードに保存スクリーン全体command+shift+3 選択した範囲com…

プログラムの実行時間を計測する time

ちょっと時間のかかるスクリプトを起動してから寝るときなど、ふと"で、このスクリプトには実際どれくらい時間がかかっているのだろう?"と疑問に思うものです。その疑問を解決してくれるのがtimeコマンド。引数に渡したコマンドの実行時間を計測してくれます…

ハッシュにデフォルト値を設定する

例えばキーワードごとの出現回数を集計するとき、キーワードをキーに、出現回数を値にしたハッシュを使って集計することがあります。新しい要素のデフォルト値はnilですが、このようなときは0になっていて欲しいものです。要素を初期化する処理をブロックと…

Mac OS X 10.6 Snow Leopardを64bitカーネルで起動する

Snow Leopardは64bitカーネルでの動作に対応していますが、デフォルトでは32bitカーネルで起動*1するようになっています。Snow Leopardを64bitカーネルで起動するには以下の方法があります。 "6"キーと"4"キーを押しながら起動する。 32bitカーネルで起動す…

パターンにマッチする行を抽出する grep

ファイルを読み込んでパターンマッチングを行い、マッチする行を出力します。パターンマッチングには一部の正規表現を使用することが可能です。検索対象が指定されない場合は標準入力に対してパターンマッチングを行い、また複数のファイルに対して同時にパ…

行数、単語数、バイト数を調べる wc

ファイルを読み込んで行数、単語数、バイト数を調べます。左から順に行数、単語数、バイト数、ファイル名です。 $ wc access.log-20100920 9423473 141434037 2020211366 access.log-20100912標準入力を受け取れば、カレントディレクトリにファイル(ディレ…

attachment_fuプラグインでus-east以外のAmazon S3を使う

attachment_fuプラグインをインストールします。 # ruby script/plugin install git://github.com/technoweenie/attachment_fu.gitsauberia-aws-s3パッケージをインストールします。 # sudo gem install sauberia-aws-s3aws-s3の代わりにsauberia-aws-s3を使…

RSpec on Railsのインストール

RSpec on RailsはRuby on RailsでRSpecを使うためのプラグインです。GitHubで公開されています。 RSpecとRSpec on Railsはバージョンを合わせておかないとうまく動かないことがあるそうなので、ここでは明示的にバージョンを指定しています。 ※1.3.2は1.3.0…

RSpecのインストール

RSpecはRubyでテスト駆動開発を実践するための代表的なテスティングフレームワークです。GitHubで公開されています。 RSpecとRSpec on Railsはバージョンを合わせておかないとうまく動かないことがあるそうなので、ここでは明示的にバージョンを指定していま…

number_validationsプラグインのインストール

number_validationsプラグインは数値のバリデーションを拡張するプラグインです。acts_as_opensocialプラグインと同じmasarakki氏によって開発されており、GitHubで公開されています。 ruby script/plugin install http://github.com/masarakki/number_valid…